NCBACK-25
Test Workflow / test (push) Successful in 3s

This commit is contained in:
vladp
2026-01-23 16:09:51 +07:00
parent d1b5b6eb5c
commit 4560925183
5 changed files with 40 additions and 25 deletions
@@ -24,7 +24,8 @@ public enum MessageCode {
AUTH_TOKEN_MISMATCH(4, "Token mismatch"),
AUTH_TOKEN_NOT_FOUND(4, "Token not found"),
FILE_NOT_FOUND(4, "File not found"),
AUTH_PASSWORD_NOT_MATCHES(2, "Password does not match");
AUTH_PASSWORD_NOT_MATCHES(2, "Password does not match"),
SEND_EMAIL_EXCEPTION(2, "Send email exception"),;
private final Integer code;
@@ -17,5 +17,9 @@ public class RegAnswer {
private boolean isVerified;
private Long userId;
private String email;
private List<Map<String, String>> fieldErrors;
}
@@ -61,14 +61,24 @@ public class RegRequestHandler implements RequestHandler {
AuthToken authToken = authService.register(regRequest);
EmailVerificationToken emailToken = emailService.createEmailVerificationToken(authToken);
try {
emailService.sendVerificationEmail(authToken.getUser(), emailToken.getToken());
} catch (Exception e) {
return new BaseResponse(request.getMsgId(), MessageCode.SEND_EMAIL_EXCEPTION.getCode(),
MessageCode.SEND_EMAIL_EXCEPTION.getDescription(), Map.of(
"message", "not send",
"email", regRequest.getEmail()
));
}
String token = authToken.getToken();
authService.useUserAuthToken(token);
RegAnswer regAnswer = new RegAnswer();
regAnswer.setToken(token);
regAnswer.setVerified(false);
regAnswer.setActive(false);
regAnswer.setUserId(authToken.getUser().getId());
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
MessageCode.SUCCESS.getDescription(), regAnswer);
@@ -1,6 +1,7 @@
package ru.soune.nocopy.handler;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.mail.MessagingException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -21,6 +22,7 @@ import ru.soune.nocopy.service.mail.EmailService;
import ru.soune.nocopy.service.register.AuthService;
import ru.soune.nocopy.service.user.UserService;
import java.io.IOException;
import java.util.Map;
import java.util.Optional;
@@ -43,7 +45,7 @@ public class VerifyRegisterUserHandler implements RequestHandler {
private final AuthService authService;
@Override
public BaseResponse handle(BaseRequest request) {
public BaseResponse handle(BaseRequest request) throws MessagingException, IOException {
VerifyUserRequest verifyUserRequest = objectMapper.convertValue(request.getMessageBody(), VerifyUserRequest.class);
Long userId = verifyUserRequest.getUserId();
@@ -62,7 +64,7 @@ public class VerifyRegisterUserHandler implements RequestHandler {
return handleVerify(request, user, authToken, verifyUserRequest.getVerifyToken());
}
private BaseResponse handleResend(BaseRequest request, User user, AuthToken authToken) {
private BaseResponse handleResend(BaseRequest request, User user, AuthToken authToken) throws MessagingException, IOException {
EmailVerificationToken token = emailVerificationTokenRepository.findByUserId(user.getId());
@@ -70,7 +72,8 @@ public class VerifyRegisterUserHandler implements RequestHandler {
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);
return successResponse(request, authToken, "Verification code has been resent", false,
false, user.getEmail());
}
if (token != null) {
@@ -84,7 +87,7 @@ public class VerifyRegisterUserHandler implements RequestHandler {
log.info("New verification token generated for user {}", user.getEmail());
return successResponse(request, authToken, "New verification code has been sent",
false, false);
false, false, user.getEmail());
}
@@ -99,19 +102,20 @@ public class VerifyRegisterUserHandler implements RequestHandler {
}
User updateUser = userService.activateAndVerifyUser(user.getId());
emailVerificationTokenRepository.delete(token);
return successResponse(request, authToken, MessageCode.SUCCESS.getDescription(), updateUser.isActive(),
updateUser.isEmailVerified());
updateUser.isEmailVerified(), updateUser.getEmail());
}
private BaseResponse successResponse(BaseRequest request, AuthToken authToken, String message, boolean isActive,
boolean isVerified) {
boolean isVerified, String email) {
RegAnswer regAnswer = new RegAnswer();
regAnswer.setToken(authToken.getToken());
regAnswer.setVerified(isVerified);
regAnswer.setActive(isActive);
regAnswer.setEmail(email);
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(), message, regAnswer);
}
@@ -1,5 +1,6 @@
package ru.soune.nocopy.service.mail;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -37,8 +38,7 @@ public class EmailService {
@Value("${app.email.verification.user}")
private String user;
public void sendVerificationEmail(User user, String code) {
try {
public void sendVerificationEmail(User user, String code) throws MessagingException, IOException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
@@ -52,10 +52,6 @@ public class EmailService {
mailSender.send(message);
log.info("Email sent to: {}", user.getEmail());
} catch (Exception e) {
log.error("Failed to send email: {}", e.getMessage());
}
}
@Transactional