NCBACK-33 add verification logic
Test Workflow / test (push) Successful in 3s

This commit is contained in:
vladp
2026-01-20 15:12:24 +07:00
parent 55fa8b84e2
commit f9accd7af1
14 changed files with 137 additions and 44 deletions
@@ -7,12 +7,14 @@ import ru.soune.nocopy.dto.*;
import ru.soune.nocopy.dto.register.LoginAnswer;
import ru.soune.nocopy.dto.register.LoginRequest;
import ru.soune.nocopy.entity.user.AuthToken;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.NotValidFieldException;
import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.register.AuthService;
import java.util.Arrays;
import java.util.Map;
import java.util.Optional;
@Component
@RequiredArgsConstructor
@@ -25,8 +27,9 @@ public class LoginRequestHandler implements RequestHandler {
@Override
public BaseResponse handle(BaseRequest request) {
LoginRequest loginRequest = objectMapper.convertValue(request.getMessageBody(), LoginRequest.class);
User user = userRepository.findByEmail(loginRequest.getEmail());
if (!userRepository.existsByEmail(loginRequest.getEmail())) {
if (user != null) {
LoginAnswer loginAnswer = new LoginAnswer();
loginAnswer.setFieldErrors(Arrays.asList(Map.of("email", loginRequest.getEmail())));
@@ -35,6 +38,17 @@ public class LoginRequestHandler implements RequestHandler {
MessageCode.AUTH_EMAIL_NOT_FOUND.getDescription(), loginAnswer));
}
if (!user.isActive() && !user.isEmailVerified()) {
LoginAnswer loginAnswer = new LoginAnswer();
loginAnswer.setFieldErrors(Arrays.asList(Map.of(
"verified", String.valueOf(user.isEmailVerified()),
"isActive", String.valueOf(user.isActive()))));
return new BaseResponse(request.getMsgId(), MessageCode.USER_NOT_VERIFIED.getCode(),
MessageCode.USER_NOT_VERIFIED.getDescription(), loginAnswer);
}
AuthToken authToken = authService.login(loginRequest);
LoginAnswer loginAnswer = new LoginAnswer();