@@ -15,6 +15,8 @@ type AuthService interface {
1515 Register (req * types.RegisterRequest ) (* types.AuthResponse , error )
1616 RefreshToken (refreshToken string ) (* types.TokenResponse , error )
1717 GetUserProfile (userID uuid.UUID ) (* types.UserResponse , error )
18+ GetMe (req types.GetMeRequest ) (* types.UserResponse , error )
19+ UpdateUserProfile (id uuid.UUID , req types.UserUpdateRequest ) (* types.UserResponse , error )
1820 Logout (accessToken , refreshToken string ) error
1921}
2022
@@ -196,6 +198,52 @@ func (s *Service) GetUserProfile(userID uuid.UUID) (*types.UserResponse, error)
196198 }, nil
197199}
198200
201+
202+ func (s * Service ) GetMe (req types.GetMeRequest ) (* types.UserResponse , error ) {
203+
204+ user , err := s .repo .GetUserByEmail (req .Email )
205+
206+ if err != nil {
207+ s .log .WithError (err ).Error ("Failed to get user profile" )
208+ return nil , errors .New ("user not found" )
209+ }
210+
211+ return & types.UserResponse {
212+ ID : user .CMSUserID ,
213+ Name : user .CMSUserName ,
214+ Email : user .CMSUserEmail ,
215+ Role : user .CMSUserRole ,
216+ Verified : user .Verified ,
217+ CreatedAt : user .CreatedAt ,
218+ UpdatedAt : user .UpdatedAt ,
219+ }, nil
220+ }
221+
222+ func (s * Service ) UpdateUserProfile (id uuid.UUID , req types.UserUpdateRequest ) (* types.UserResponse , error ) {
223+
224+ user , err := s .repo .GetUserByID (id )
225+ if err != nil {
226+ s .log .WithError (err ).Error ("Failed to get user profile with id " , id )
227+ return nil , errors .New ("user not found" )
228+ }
229+
230+ user .CMSUserName = req .Name
231+ if err := s .repo .UpdateUser (user ); err != nil {
232+ s .log .WithError (err ).Error ("Failed to update user profile" )
233+ return nil , errors .New ("failed to update user profile" )
234+ }
235+
236+ return & types.UserResponse {
237+ ID : user .CMSUserID ,
238+ Name : user .CMSUserName ,
239+ Email : user .CMSUserEmail ,
240+ Role : user .CMSUserRole ,
241+ Verified : user .Verified ,
242+ CreatedAt : user .CreatedAt ,
243+ UpdatedAt : user .UpdatedAt ,
244+ }, nil
245+
246+
199247func (s * Service ) Logout (accessToken , refreshToken string ) error {
200248 if accessToken != "" {
201249 accessClaims , err := utils .ValidateToken (accessToken )
0 commit comments