add api forgot password
This commit is contained in:
		| @@ -2,10 +2,12 @@ package com.iconplus.smartproc.controller; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.model.EmptyRequest; | ||||
| import com.iconplus.smartproc.helper.model.EmptyResponse; | ||||
| import com.iconplus.smartproc.model.request.ForgotPasswordRequest; | ||||
| import com.iconplus.smartproc.model.request.LoginRequest; | ||||
| import com.iconplus.smartproc.model.request.RefreshTokenRequest; | ||||
| import com.iconplus.smartproc.model.response.LoginResponse; | ||||
| import com.iconplus.smartproc.model.response.RefreshTokenResponse; | ||||
| import com.iconplus.smartproc.service.authentication.ForgotPasswordService; | ||||
| import com.iconplus.smartproc.service.authentication.LoginService; | ||||
| import com.iconplus.smartproc.service.authentication.LogoutService; | ||||
| import com.iconplus.smartproc.service.authentication.TokenManagementService; | ||||
| @@ -19,13 +21,16 @@ public class AuthenticationController { | ||||
|     private LoginService loginService; | ||||
|     private TokenManagementService tokenManagementService; | ||||
|     private LogoutService logoutService; | ||||
|     private ForgotPasswordService forgotPasswordService; | ||||
|  | ||||
|     public AuthenticationController(LoginService loginService, | ||||
|                                     TokenManagementService tokenManagementService, | ||||
|                                     LogoutService logoutService) { | ||||
|                                     LogoutService logoutService, | ||||
|                                     ForgotPasswordService forgotPasswordService) { | ||||
|         this.loginService = loginService; | ||||
|         this.tokenManagementService = tokenManagementService; | ||||
|         this.logoutService = logoutService; | ||||
|         this.forgotPasswordService = forgotPasswordService; | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/login") | ||||
| @@ -44,4 +49,9 @@ public class AuthenticationController { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/forgot-password") | ||||
|     public EmptyResponse forgotPassword(@RequestBody ForgotPasswordRequest forgotPasswordRequest) { | ||||
|         return forgotPasswordService.execute(forgotPasswordRequest); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,17 @@ | ||||
| package com.iconplus.smartproc.model.request; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseRequest; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class ForgotPasswordRequest extends BaseRequest { | ||||
|     private String currentPassword; | ||||
|     private String newPassword; | ||||
|     private String confirmationPassword; | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| package com.iconplus.smartproc.service.authentication; | ||||
|  | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.context.ApiContext; | ||||
| import com.iconplus.smartproc.helper.model.EmptyResponse; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.request.ForgotPasswordRequest; | ||||
| import com.iconplus.smartproc.repository.UsersRepository; | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| @Service | ||||
| public class ForgotPasswordService implements BaseService<ForgotPasswordRequest, EmptyResponse> { | ||||
|  | ||||
|     private ApiContext apiContext; | ||||
|     private UsersRepository usersRepository; | ||||
|     public ForgotPasswordService(UsersRepository usersRepository, | ||||
|                                  ApiContext apiContext) { | ||||
|         this.usersRepository = usersRepository; | ||||
|         this.apiContext = apiContext; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public EmptyResponse execute(ForgotPasswordRequest input) { | ||||
|  | ||||
|         Long id = Long.valueOf(apiContext.getUserId()); | ||||
|         var users = usersRepository.findByIdAndIsDeleteFalse(id).orElseThrow(() -> new BusinessException("err", "err", "err")); | ||||
|  | ||||
|         if (!StringUtils.equalsIgnoreCase(input.getCurrentPassword(), users.getPassword()) || | ||||
|                 StringUtils.equalsIgnoreCase(input.getNewPassword(), users.getPassword()) || | ||||
|                 !StringUtils.equalsIgnoreCase(input.getConfirmationPassword(), input.getNewPassword())) { | ||||
|             throw new BusinessException("err", "err", "err"); | ||||
|         } | ||||
|  | ||||
|         users.setPassword(input.getNewPassword()); | ||||
|         usersRepository.save(users); | ||||
|  | ||||
|         return new EmptyResponse(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user