NCP-3 Add logic update user fields,change password

This commit is contained in:
vladp
2025-11-27 12:48:08 +07:00
parent ffb1d811a8
commit 5c8fdce323
10 changed files with 180 additions and 11 deletions
@@ -5,6 +5,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import ru.soune.no_copy.dto.ChangePasswordRequest;
import ru.soune.no_copy.dto.UserDTO;
import ru.soune.no_copy.dto.UserRequest;
import ru.soune.no_copy.entity.AuthToken;
import ru.soune.no_copy.entity.User;
import ru.soune.no_copy.exception.InvalidUserEmail;
@@ -35,7 +36,7 @@ public class UserController {
List<UserDTO> allUsers = userRepository.findAll().stream()
.map(u -> new UserDTO(u.getFullName(), u.getCompany(), u.getEmail(), u.getIsActive(),
u.getPhone(), u.getGenderType(),
u.getBirthday(), u.getCreatedAt()))
u.getBirthday(), u.getCreatedAt(), u.getSubscriptionType()))
.toList();
return ResponseEntity.ok(allUsers);
@@ -61,4 +62,18 @@ public class UserController {
return ResponseEntity.ok(userMapper.toDTO(updateUser));
}
@PatchMapping("/user-update")
public ResponseEntity<UserDTO> updateUser(@RequestBody UserRequest userRequest,
@RequestHeader("Authorization") String tokenHeader) {
String token = tokenHeader.replace("Bearer ", "");
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
User user = authToken.getUser();
return ResponseEntity.ok(userService.updateUser(userRequest, user));
}
}