diff --git a/src/main/java/com/mandacarubroker/controller/UserController.java b/src/main/java/com/mandacarubroker/controller/UserController.java index 38d37461..fec1afb5 100644 --- a/src/main/java/com/mandacarubroker/controller/UserController.java +++ b/src/main/java/com/mandacarubroker/controller/UserController.java @@ -60,9 +60,6 @@ public ResponseEntity getUserById(@PathVariable final String us }) @PostMapping public ResponseEntity createUser(@RequestBody @Valid final RequestUserDTO requestUserDTO) { - if (userService.verifyDuplicateUsername(requestUserDTO.username())) { - return ResponseEntity.status(HttpStatus.CONFLICT).build(); - } ResponseUserDTO createdUser = userService.createUser(requestUserDTO); return ResponseEntity.status(HttpStatus.CREATED).body(createdUser); } diff --git a/src/main/java/com/mandacarubroker/service/UserService.java b/src/main/java/com/mandacarubroker/service/UserService.java index 7f2ceb36..fba87637 100644 --- a/src/main/java/com/mandacarubroker/service/UserService.java +++ b/src/main/java/com/mandacarubroker/service/UserService.java @@ -4,10 +4,11 @@ import com.mandacarubroker.domain.user.ResponseUserDTO; import com.mandacarubroker.domain.user.User; import com.mandacarubroker.domain.user.UserRepository; +import org.springframework.http.HttpStatus; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; +import org.springframework.web.server.ResponseStatusException; import java.util.ArrayList; import java.util.List; @@ -62,6 +63,9 @@ private User hashPassword(final User user) { } public ResponseUserDTO createUser(final RequestUserDTO requestUserDTO) { + if (verifyDuplicateUsername(requestUserDTO.username())) { + throw new ResponseStatusException(HttpStatus.CONFLICT, "this username is not available"); + } validateRequestDTO(requestUserDTO); User newUser = new User(requestUserDTO); User hashedPasswordUser = hashPassword(newUser); @@ -94,13 +98,13 @@ public void deleteUser(final String id) { public UserDetails loadUserByUsername(final String username) { if (username == null || username.isEmpty()) { - throw new UsernameNotFoundException("Username is required"); + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Username cannot be null or empty"); } User user = userRepository.findByUsername(username); if (user == null) { - throw new UsernameNotFoundException("User not found"); + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "User not found"); } return user; diff --git a/src/test/java/com/mandacarubroker/controller/UserControllerIT.java b/src/test/java/com/mandacarubroker/controller/UserControllerIT.java index 792e02b5..5c4abc6a 100644 --- a/src/test/java/com/mandacarubroker/controller/UserControllerIT.java +++ b/src/test/java/com/mandacarubroker/controller/UserControllerIT.java @@ -203,6 +203,7 @@ void itShouldReturnCreatedStatusAfterSucessfulPost() throws Exception { mockMvc.perform(requestBuilder).andExpect(matchStatus); } + @Test void itShouldReturnUserDataAfterSucessfulPost() throws Exception { String userJsonString = objectMapper.writeValueAsString(validUserDTO); System.out.println(userJsonString); @@ -217,6 +218,7 @@ void itShouldReturnUserDataAfterSucessfulPost() throws Exception { assertResponseUserDTO(validUserDTO, createdUser); } + @Test void itShouldReturnUserDataAfterSucessfulPut() throws Exception { String userJsonString = objectMapper.writeValueAsString(validUserDTO);