@@ -3,6 +3,7 @@ package handler
33import (
44 "github.com/go-playground/validator/v10"
55 "github.com/gofiber/fiber/v2"
6+ "github.com/google/uuid"
67
78 "github.com/multi-tenants-cms-golang/cms-sys/internal/service"
89 "github.com/multi-tenants-cms-golang/cms-sys/internal/types"
@@ -14,6 +15,8 @@ type AuthHandle interface {
1415 Register (c * fiber.Ctx ) error
1516 Logout (c * fiber.Ctx ) error
1617 Refresh (c * fiber.Ctx ) error
18+ GetMe (c * fiber.Ctx ) error
19+ UpdateUserProfile (c * fiber.Ctx ) error
1720}
1821
1922type Handler struct {
@@ -90,3 +93,47 @@ func (h *Handler) Refresh(c *fiber.Ctx) error {
9093
9194 return utils .SuccessResponse (c , "Token refreshed successfully" , tokenResponse )
9295}
96+
97+ func (h * Handler ) GetMe (c * fiber.Ctx ) error {
98+ var req types.GetMeRequest
99+ if err := c .BodyParser (& req ); err != nil {
100+ return utils .BadRequestResponse (c , "Invalid request body" , err .Error ())
101+ }
102+
103+ if err := h .validator .Struct (& req ); err != nil {
104+ return utils .BadRequestResponse (c , "Validation failed" , err .Error ())
105+ }
106+
107+ profileResponse , err := h .service .GetMe (req )
108+
109+ if err != nil {
110+ return utils .UnauthorizedResponse (c , err .Error ())
111+ }
112+
113+ return utils .SuccessResponse (c , "Get User Information successfully" , profileResponse )
114+ }
115+
116+ func (h * Handler ) UpdateUserProfile (c * fiber.Ctx ) error {
117+ stringId := c .Params ("id" )
118+
119+ id , err := uuid .Parse (stringId )
120+
121+ if err != nil {
122+ return utils .BadRequestResponse (c , "The provided ID is not a valid UUID" , err .Error ())
123+ }
124+ var req types.UserUpdateRequest
125+ if err := c .BodyParser (& req ); err != nil {
126+ return utils .BadRequestResponse (c , "Invalid request body" , err .Error ())
127+ }
128+ if err := h .validator .Struct (& req ); err != nil {
129+ return utils .BadRequestResponse (c , "Validation failed!" , err .Error ())
130+ }
131+
132+ updatedProfileResponse , err := h .service .UpdateUserProfile (id , req )
133+
134+ if err != nil {
135+ return utils .InternalServerErrorResponse (c , "Failed to update user profile" , err .Error ())
136+ }
137+ return utils .SuccessResponse (c , "User profile updated" , updatedProfileResponse )
138+
139+ }
0 commit comments