[ad_1]
When I post a request to signup, while my mysql database hasn’t been started, I get an exception thrown in my Spring boot application, but I still get a OK response from postman.
How can I make it so an OK response isn’t given if there is an error thrown in my application.
This is request from Postman:
{
"username": "user",
"password": "123",
"email" : "example",
"biography": "example bio",
"profileImageUrl": "profile.image"
}
This is my controller code:
@PostMapping("/signup")
public ResponseEntity<Object> signup(@RequestBody RegisterRequest registerRequest) {
this.authService.signup(registerRequest);
return ResponseEntity.ok().build();
}
And this is the authService.signup() method:
@Async
public void signup(RegisterRequest registerRequest) {
if (!userRepository.existsByUsername(registerRequest.getUsername())) {
User user = new User();
user.setUsername(registerRequest.getUsername());
user.setPassword(passwordEncoder.encode(registerRequest.getPassword()));
user.setEmail(registerRequest.getEmail());
user.setBiography(registerRequest.getBiography());
user.setProfileImageUrl(registerRequest.getProfileImageUrl());
user.setCreationDate(Instant.now());
user.setEnabled(false);
VerificationToken token = generateToken(user);
log.info("Token: " + token.getToken());
this.emailService.sendVerificationMessage(user.getEmail(), token.getToken());
} else {
throw new UserExistsException("User with username " + registerRequest.getUsername() + " already exists");
}
}
[ad_2]