From 0c4061d750fb59cdb685599617664b8756214612 Mon Sep 17 00:00:00 2001 From: Kattsyn Date: Thu, 8 May 2025 23:51:07 +0300 Subject: [PATCH 1/3] (TP-109) feat: add updateUserByEmail method --- .../dev/rentplace/services/UserService.java | 8 +++-- .../services/impl/UserServiceImpl.java | 29 ++++++++++++------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/rentplace/src/main/java/kattsyn/dev/rentplace/services/UserService.java b/rentplace/src/main/java/kattsyn/dev/rentplace/services/UserService.java index a639933..17c1f42 100644 --- a/rentplace/src/main/java/kattsyn/dev/rentplace/services/UserService.java +++ b/rentplace/src/main/java/kattsyn/dev/rentplace/services/UserService.java @@ -20,15 +20,17 @@ public interface UserService { User getUserById(Long id); - UserDTO save(UserDTO userDTO); - UserDTO createWithImage(UserCreateEditDTO userCreateEditDTO); void deleteById(long id); ImageDTO uploadImage(MultipartFile file, long id); - UserDTO update(long id, UserCreateEditDTO userCreateEditDTO); + UserDTO updateUserById(long id, UserCreateEditDTO userCreateEditDTO); + + UserDTO updateUser(User user, UserCreateEditDTO userCreateEditDTO); + + UserDTO updateUserByEmail(String email, UserCreateEditDTO userCreateEditDTO); boolean allowedToEditUser(long id, String email); diff --git a/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java b/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java index 098925e..1b340e5 100644 --- a/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java +++ b/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java @@ -67,16 +67,6 @@ public UserDTO findById(Long id) { return userMapper.fromUser(getUserById(id)); } - @Transactional - @Override - public UserDTO save(UserDTO userDTO) { - User user = userMapper.fromDTO(userDTO); - user.setRegistrationDate(LocalDate.now()); - - user = userRepository.save(user); - return userMapper.fromUser(user); - } - @Transactional @Override public UserDTO createWithImage(UserCreateEditDTO userCreateEditDTO) { @@ -111,9 +101,26 @@ public ImageDTO uploadImage(MultipartFile file, long id) { @Transactional @Override - public UserDTO update(long id, UserCreateEditDTO userCreateEditDTO) { + public UserDTO updateUserByEmail(String email, UserCreateEditDTO userCreateEditDTO) { + User user = userRepository.findByEmail(email).orElseThrow( + () -> new NotFoundException(String.format("User with email %s not found", email)) + ); + + return updateUser(user, userCreateEditDTO); + } + + @Transactional + @Override + public UserDTO updateUserById(long id, UserCreateEditDTO userCreateEditDTO) { User user = getUserById(id); + return updateUser(user, userCreateEditDTO); + } + + @Transactional + @Override + public UserDTO updateUser(User user, UserCreateEditDTO userCreateEditDTO) { + if (userCreateEditDTO.getName() != null && !userCreateEditDTO.getName().isBlank()) { user.setName(userCreateEditDTO.getName()); } From 9f976b05e78e09e0292d3956019e34f58f428389 Mon Sep 17 00:00:00 2001 From: Kattsyn Date: Thu, 8 May 2025 23:51:43 +0300 Subject: [PATCH 2/3] (TP-109) feat: add updateUser by Authentication --- .../rentplace/controllers/UserController.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/rentplace/src/main/java/kattsyn/dev/rentplace/controllers/UserController.java b/rentplace/src/main/java/kattsyn/dev/rentplace/controllers/UserController.java index 1f36f31..634c135 100644 --- a/rentplace/src/main/java/kattsyn/dev/rentplace/controllers/UserController.java +++ b/rentplace/src/main/java/kattsyn/dev/rentplace/controllers/UserController.java @@ -127,7 +127,26 @@ public ResponseEntity updateUserById( @ModelAttribute @Valid UserCreateEditDTO userCreateEditDTO, Authentication authentication) { userService.allowedToEditUser(id, authentication.getName()); - return ResponseEntity.ok(userService.update(id, userCreateEditDTO)); + return ResponseEntity.ok(userService.updateUserById(id, userCreateEditDTO)); + } + + @Operation( + summary = "Изменение данных авторизованного пользователя", + description = "Метод, для того чтобы пользователь изменил данные своего профиля" + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Успешно"), + @ApiResponse(responseCode = "404", description = "Пользователь не найден", content = @Content), + @ApiResponse(responseCode = "422", description = "Ошибка валидации", content = @Content), + @ApiResponse(responseCode = "500", description = "Непредвиденная ошибка со стороны сервера", content = @Content) + }) + @PreAuthorize("hasAuthority('ROLE_ADMIN') or hasAuthority('ROLE_USER')") + @SecurityRequirement(name = "JWT") + @PatchMapping(path = "/me", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public ResponseEntity updateUser( + @ModelAttribute @Valid UserCreateEditDTO userCreateEditDTO, + Authentication authentication) { + return ResponseEntity.ok(userService.updateUserByEmail(authentication.getName(), userCreateEditDTO)); } @Operation( From 4b585a898923268635319033a1a25bc2f8dccf00 Mon Sep 17 00:00:00 2001 From: Kattsyn Date: Sat, 10 May 2025 10:46:53 +0300 Subject: [PATCH 3/3] (TP-109) refactor: update updateUser method --- .../services/impl/UserServiceImpl.java | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java b/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java index 1b340e5..980f0ff 100644 --- a/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java +++ b/rentplace/src/main/java/kattsyn/dev/rentplace/services/impl/UserServiceImpl.java @@ -121,32 +121,16 @@ public UserDTO updateUserById(long id, UserCreateEditDTO userCreateEditDTO) { @Override public UserDTO updateUser(User user, UserCreateEditDTO userCreateEditDTO) { - if (userCreateEditDTO.getName() != null && !userCreateEditDTO.getName().isBlank()) { - user.setName(userCreateEditDTO.getName()); - } - if (userCreateEditDTO.getSurname() != null && !userCreateEditDTO.getSurname().isBlank()) { - user.setSurname(userCreateEditDTO.getSurname()); - } - if (userCreateEditDTO.getEmail() != null && !userCreateEditDTO.getEmail().isBlank()) { - user.setEmail(userCreateEditDTO.getEmail()); - } - if (userCreateEditDTO.getBirthDate() != null) { - user.setBirthDate(userCreateEditDTO.getBirthDate()); - } + User updatedUser = userMapper.fromUserCreateEditDTO(userCreateEditDTO); - if (userCreateEditDTO.getGender() != null) { - user.setGender(userCreateEditDTO.getGender()); - } - - if (userCreateEditDTO.getRole() != null) { - user.setRole(userCreateEditDTO.getRole()); - } + updatedUser.setUserId(user.getUserId()); + updatedUser.setRegistrationDate(user.getRegistrationDate()); if (userCreateEditDTO.getFile() != null && !userCreateEditDTO.getFile().isEmpty()) { - return uploadImage(userCreateEditDTO.getFile(), user); + return uploadImage(userCreateEditDTO.getFile(), updatedUser); } - return userMapper.fromUser(userRepository.save(user)); + return userMapper.fromUser(userRepository.save(updatedUser)); } @Override