From ec6a487d3732d0c4f49e0b41ce01713f5ea9e19a Mon Sep 17 00:00:00 2001 From: AzenKain Date: Tue, 14 Apr 2026 09:54:47 +0700 Subject: [PATCH] UPDATE: Add some api --- internal/controllers/userController.go | 40 ++++++++++++++++++++++---- internal/routes/userRoute.go | 6 ++++ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/internal/controllers/userController.go b/internal/controllers/userController.go index 5eaeac2..b7a3ffe 100644 --- a/internal/controllers/userController.go +++ b/internal/controllers/userController.go @@ -12,19 +12,19 @@ import ( ) type UserController struct { - service services.UserService - mediaService services.MediaService + service services.UserService + mediaService services.MediaService verificationService services.VerificationService } func NewUserController( - svc services.UserService, - mediaSvc services.MediaService, + svc services.UserService, + mediaSvc services.MediaService, verificationSvc services.VerificationService, ) *UserController { return &UserController{ - service: svc, - mediaService: mediaSvc, + service: svc, + mediaService: mediaSvc, verificationService: verificationSvc, } } @@ -85,6 +85,34 @@ func (h *UserController) GetUserMedia(c fiber.Ctx) error { }) } +// GetUserApplication godoc +// @Summary Get current user's application +// @Description Retrieve application list of the currently authenticated user +// @Tags Users +// @Accept json +// @Produce json +// @Security BearerAuth +// @Success 200 {object} response.CommonResponse +// @Failure 500 {object} response.CommonResponse +// @Router /users/current/application [get] +func (h *UserController) GetUserApplication(c fiber.Ctx) error { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + res, err := h.verificationService.GetVerificationByUserID(ctx, c.Locals("uid").(string)) + if err != nil { + return c.Status(fiber.StatusInternalServerError).JSON(response.CommonResponse{ + Status: false, + Message: err.Error(), + }) + } + + return c.Status(fiber.StatusOK).JSON(response.CommonResponse{ + Status: true, + Data: res, + }) +} + // GetMediaByUserID godoc // @Summary Get user's media by user ID // @Description Retrieve media list by specific user ID diff --git a/internal/routes/userRoute.go b/internal/routes/userRoute.go index 1df0036..34245c0 100644 --- a/internal/routes/userRoute.go +++ b/internal/routes/userRoute.go @@ -31,6 +31,12 @@ func UserRoutes(app *fiber.App, controller *controllers.UserController, userRepo controller.GetUserMedia, ) + route.Get( + "/current/application", + middlewares.JwtAccess(userRepo), + controller.GetUserApplication, + ) + route.Get( "/:id", middlewares.JwtAccess(userRepo),