NCBACK-9 add login
Test Workflow / test (push) Successful in 4s

This commit is contained in:
vladp
2025-12-10 04:51:07 +07:00
parent b5b8bebb69
commit 8a33bd33a2
6 changed files with 34 additions and 54 deletions
@@ -5,14 +5,17 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.*;
import ru.soune.no_copy.dto.BaseRequest;
import ru.soune.no_copy.dto.LoginRequest;
import ru.soune.no_copy.dto.MessageCode;
import ru.soune.no_copy.dto.RegRequest;
import ru.soune.no_copy.exception.UserAlreadyExistsException;
import ru.soune.no_copy.entity.AuthToken;
import ru.soune.no_copy.exception.NotValidFieldException;
import ru.soune.no_copy.handler.RegRequestValidator;
import ru.soune.no_copy.repository.UserRepository;
import ru.soune.no_copy.service.AuthService;
@@ -34,6 +37,8 @@ public class ApiController {
private final RegRequestValidator regRequestValidator;
private final PasswordEncoder passwordEncoder;
@Autowired
private AuthService authService;
@@ -47,7 +52,7 @@ public class ApiController {
RegRequest regRequest = objectMapper.convertValue(request.getMessageBody(), RegRequest.class);
if (userRepository.existsByEmail(regRequest.getEmail())) {
throw new UserAlreadyExistsException("User already exists with email: " + regRequest.getEmail(),
throw new NotValidFieldException("User already exists with email: " + regRequest.getEmail(),
msgId, MessageCode.REG_EMAIL_EXISTS.getCode(), MessageCode.REG_EMAIL_EXISTS.getDescription());
}
@@ -64,6 +69,20 @@ public class ApiController {
}
break;
case 20001:
LoginRequest loginRequest = objectMapper.convertValue(request.getMessageBody(), LoginRequest.class);
if (!userRepository.existsByEmail(loginRequest.getEmail())) {
throw new NotValidFieldException("User with email not found: " + loginRequest.getEmail(),
msgId, MessageCode.AUTH_EMAIL_NOT_FOUND.getCode(),
MessageCode.AUTH_EMAIL_NOT_FOUND.getDescription());
}
authService.login(loginRequest);
response = fillResponseInfo(msgId, MessageCode.SUCCESS.getCode(),
MessageCode.SUCCESS.getDescription());
break;
default:
return ResponseEntity.ok().body(fillResponseInfo(msgId, MessageCode.MSG_ID_NOT_FOUND.getCode(),
MessageCode.MSG_ID_NOT_FOUND.getDescription()));