aboutsummaryrefslogtreecommitdiffstats
path: root/internal/chore/handler.go
diff options
context:
space:
mode:
authorLibravatar Mo Tarbin <mhed.t91@gmail.com>2024-07-06 02:36:14 -0400
committerLibravatar Mo Tarbin <mhed.t91@gmail.com>2024-07-06 02:36:14 -0400
commit45e18c8edd55e98712d5f175ecaaae86fde4d933 (patch)
treee7364d8e48a85c897de019f0786eff4c6dc2a990 /internal/chore/handler.go
parentf115d70c49048e3ec3ee768bd9cd85f9b06c1631 (diff)
downloaddonetick-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.go32
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)