diff options
author | Mo Tarbin <mhed.t91@gmail.com> | 2024-07-06 02:36:14 -0400 |
---|---|---|
committer | Mo Tarbin <mhed.t91@gmail.com> | 2024-07-06 02:36:14 -0400 |
commit | 45e18c8edd55e98712d5f175ecaaae86fde4d933 (patch) | |
tree | e7364d8e48a85c897de019f0786eff4c6dc2a990 /internal/chore/handler.go | |
parent | f115d70c49048e3ec3ee768bd9cd85f9b06c1631 (diff) | |
download | donetick-45e18c8edd55e98712d5f175ecaaae86fde4d933.tar.gz donetick-45e18c8edd55e98712d5f175ecaaae86fde4d933.tar.bz2 donetick-45e18c8edd55e98712d5f175ecaaae86fde4d933.zip |
Add GetChoreDetail endpoint to retrieve detailed chore information
Diffstat (limited to '')
-rw-r--r-- | internal/chore/handler.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/chore/handler.go b/internal/chore/handler.go index d15d4e7..bce6d01 100644 --- a/internal/chore/handler.go +++ b/internal/chore/handler.go @@ -873,6 +873,37 @@ func (h *Handler) GetChoreHistory(c *gin.Context) { }) } +func (h *Handler) GetChoreDetail(c *gin.Context) { + + currentUser, ok := auth.CurrentUser(c) + if !ok { + c.JSON(500, gin.H{ + "error": "Error getting current user", + }) + return + } + rawID := c.Param("id") + id, err := strconv.Atoi(rawID) + if err != nil { + c.JSON(400, gin.H{ + "error": "Invalid ID", + }) + return + } + + detailed, err := h.choreRepo.GetChoreDetailByID(c, id, currentUser.CircleID) + if err != nil { + c.JSON(500, gin.H{ + "error": "Error getting chore history", + }) + return + } + + c.JSON(200, gin.H{ + "res": detailed, + }) +} + func checkNextAssignee(chore *chModel.Chore, choresHistory []*chModel.ChoreHistory, performerID int) (int, error) { // copy the history to avoid modifying the original: history := make([]*chModel.ChoreHistory, len(choresHistory)) @@ -959,6 +990,7 @@ func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) { choresRoutes.PUT("/", h.editChore) choresRoutes.POST("/", h.createChore) choresRoutes.GET("/:id", h.getChore) + choresRoutes.GET("/:id/details", h.GetChoreDetail) choresRoutes.GET("/:id/history", h.GetChoreHistory) choresRoutes.POST("/:id/do", h.completeChore) choresRoutes.POST("/:id/skip", h.skipChore) |