NCBACK-162
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-05-29 18:17:04 +07:00
parent bc26b39d86
commit 5e494ffc4b
60 changed files with 670 additions and 837 deletions
@@ -10,22 +10,18 @@ import ru.soune.nocopy.dto.BaseResponse;
import ru.soune.nocopy.dto.MessageCode;
import ru.soune.nocopy.dto.register.RegAnswer;
import ru.soune.nocopy.dto.register.VerifyUserRequest;
import ru.soune.nocopy.entity.user.AuthToken;
import ru.soune.nocopy.entity.user.EmailVerificationToken;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.NotValidFieldException;
import ru.soune.nocopy.exception.UserNotFoundException;
import ru.soune.nocopy.repository.AuthTokenRepository;
import ru.soune.nocopy.repository.EmailVerificationTokenRepository;
import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.mail.EmailService;
import ru.soune.nocopy.service.register.AuthService;
import ru.soune.nocopy.service.user.UserService;
import ru.soune.nocopy.util.JwtUtil;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@Component
@Slf4j
@@ -41,9 +37,7 @@ public class VerifyRegisterUserHandler implements RequestHandler {
private final UserService userService;
private final AuthTokenRepository authTokenRepository;
private final AuthService authService;
private final JwtUtil jwtUtil;
@Override
public BaseResponse handle(BaseRequest request) throws MessagingException, IOException {
@@ -54,45 +48,37 @@ public class VerifyRegisterUserHandler implements RequestHandler {
User user = userRepository.findById(userId)
.orElseThrow(() -> new UserNotFoundException("User not found with id: " + userId));
List<AuthToken> userAuthTokens = authTokenRepository.findByUserId(userId);
AuthToken authToken = userAuthTokens.isEmpty() ? authService.generateAuthToken(user): userAuthTokens.getFirst();
if (verifyUserRequest.getResend() != null && verifyUserRequest.getResend() == 1) {
return handleResend(request, user, authToken);
return handleResend(request, user);
}
String authToken = jwtUtil.generateToken(user.getId(), user.getEmail());
return handleVerify(request, user, authToken, verifyUserRequest.getVerifyToken());
}
private BaseResponse handleResend(BaseRequest request, User user, AuthToken authToken) throws MessagingException, IOException {
private BaseResponse handleResend(BaseRequest request, User user) throws MessagingException, IOException {
EmailVerificationToken token = emailVerificationTokenRepository.findByUserId(user.getId());
// if (token != null && !token.isExpired()) {
// emailService.sendVerificationEmail(user, token.getToken());
//
// log.info("Verification token resent for user {}", user.getEmail());
// return successResponse(request, authToken, "Verification code has been resent", false,
// false, user.getEmail());
// }
if (token != null) {
emailVerificationTokenRepository.delete(token);
}
EmailVerificationToken newToken = emailService.createEmailVerificationToken(authToken);
EmailVerificationToken newToken = emailService.createEmailVerificationToken(user);
emailService.sendVerificationEmail(user, newToken.getToken());
log.info("New verification token generated for user {}", user.getEmail());
String authToken = jwtUtil.generateToken(user.getId(), user.getEmail());
return successResponse(request, authToken, "New verification code has been sent",
false, false, user.getEmail());
}
private BaseResponse handleVerify(BaseRequest request, User user, AuthToken authToken, String providedToken) {
private BaseResponse handleVerify(BaseRequest request, User user, String authToken, String providedToken) {
EmailVerificationToken token = emailVerificationTokenRepository.findByUserIdAndToken(user.getId(), providedToken);
@@ -110,10 +96,10 @@ public class VerifyRegisterUserHandler implements RequestHandler {
updateUser.isEmailVerified(), updateUser.getEmail());
}
private BaseResponse successResponse(BaseRequest request, AuthToken authToken, String message, boolean isActive,
private BaseResponse successResponse(BaseRequest request, String authToken, String message, boolean isActive,
boolean isVerified, String email) {
RegAnswer regAnswer = new RegAnswer();
regAnswer.setToken(authToken.getToken());
regAnswer.setToken(authToken);
regAnswer.setVerified(isVerified);
regAnswer.setActive(isActive);
regAnswer.setEmail(email);