diff --git a/.DS_Store b/.DS_Store index 3642ece..fa91e60 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/internal/handler/admin_approval_flow_handler.go b/internal/handler/admin_approval_flow_handler.go index 5a2bd48..a1a682d 100644 --- a/internal/handler/admin_approval_flow_handler.go +++ b/internal/handler/admin_approval_flow_handler.go @@ -2,6 +2,7 @@ package handler import ( "context" + "eslogad-be/internal/appcontext" "net/http" "strconv" @@ -200,6 +201,28 @@ func (h *AdminApprovalFlowHandler) ListApprovalFlows(c *gin.Context) { c.JSON(http.StatusOK, contract.BuildSuccessResponse(resp)) } +func (h *AdminApprovalFlowHandler) ListApprovalFlowsByDepartment(c *gin.Context) { + appCtx := appcontext.FromGinContext(c.Request.Context()) + + page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) + limit, _ := strconv.Atoi(c.DefaultQuery("limit", "10")) + offset := (page - 1) * limit + + req := &contract.ListApprovalFlowsRequest{ + Limit: limit, + Offset: offset, + DepartmentID: &appCtx.DepartmentID, + } + + resp, err := h.svc.ListApprovalFlows(c.Request.Context(), req) + if err != nil { + c.JSON(http.StatusInternalServerError, &contract.ErrorResponse{Error: err.Error(), Code: http.StatusInternalServerError}) + return + } + + c.JSON(http.StatusOK, contract.BuildSuccessResponse(resp)) +} + func (h *AdminApprovalFlowHandler) ActivateApprovalFlow(c *gin.Context) { id, err := uuid.Parse(c.Param("id")) if err != nil { diff --git a/internal/router/health_handler.go b/internal/router/health_handler.go index 456cafb..645cc29 100644 --- a/internal/router/health_handler.go +++ b/internal/router/health_handler.go @@ -17,7 +17,6 @@ type UserHandler interface { ChangePassword(c *gin.Context) ListTitles(c *gin.Context) GetActiveUsersForMention(c *gin.Context) - } type FileHandler interface { @@ -134,6 +133,7 @@ type AdminApprovalFlowHandler interface { UpdateApprovalFlow(c *gin.Context) DeleteApprovalFlow(c *gin.Context) ListApprovalFlows(c *gin.Context) + ListApprovalFlowsByDepartment(c *gin.Context) ActivateApprovalFlow(c *gin.Context) DeactivateApprovalFlow(c *gin.Context) CloneApprovalFlow(c *gin.Context) diff --git a/internal/router/router.go b/internal/router/router.go index 73486a2..36cf1ab 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -241,6 +241,7 @@ func (r *Router) addAppRoutes(rg *gin.Engine) { { approvalFlows.POST("", r.adminApprovalFlowHandler.CreateApprovalFlow) approvalFlows.GET("", r.adminApprovalFlowHandler.ListApprovalFlows) + approvalFlows.GET("/department", r.adminApprovalFlowHandler.ListApprovalFlowsByDepartment) approvalFlows.GET("/:id", r.adminApprovalFlowHandler.GetApprovalFlow) approvalFlows.GET("/department/:department_id", r.adminApprovalFlowHandler.GetApprovalFlowByDepartment) approvalFlows.PUT("/:id", r.adminApprovalFlowHandler.UpdateApprovalFlow)