Skip to content

Commit

Permalink
feat: PUT Method - 유저 정보 수정 #2
Browse files Browse the repository at this point in the history
  • Loading branch information
PgmJun committed Apr 21, 2023
1 parent 98e16c4 commit 81dad06
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,25 @@ public ResponseEntity<?> findUser(@PathVariable Long userId) {
return generateUserResponseEntity(findUser, userId);
}

@PutMapping("/update/{userId}")
public ResponseEntity<?> updateUser(@PathVariable Long userId, @RequestBody UserRequestDto userRequestDto) {
boolean updateResult = userService.updateUser(userId, userRequestDto);

return generateUpdateResponseEntity(updateResult, userId);
}



private ResponseEntity<?> generateUserResponseEntity(Optional<User> user, Long userId) {
return (user.isEmpty()) ?
new ResponseEntity<>(userId + "번 유저에 대한 정보가 존재하지 않습니다.", HttpStatus.NO_CONTENT) :
new ResponseEntity<>(user.get().toDto(userId), HttpStatus.OK);
}

private ResponseEntity<?> generateUpdateResponseEntity(boolean updateResult, Long userId) {
return (updateResult) ?
new ResponseEntity<>(userId + "번 유저에 대한 정보가 성공적으로 업데이트 되었습니다.", HttpStatus.OK):
new ResponseEntity<>(userId + "번 유저에 대한 정보가 존재하지 않습니다.", HttpStatus.NO_CONTENT);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import sopt.org.secondSeminarAdvancedAssignment.dto.UserRequestDto;
import sopt.org.secondSeminarAdvancedAssignment.dto.UserResponseDto;

@Builder
Expand All @@ -16,4 +17,9 @@ public class User {
public UserResponseDto toDto(Long userId) {
return new UserResponseDto(userId, name, age);
}

public void update(UserRequestDto userRequestDto) {
this.name = userRequestDto.getName();
this.age = userRequestDto.getAge();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ public interface UserRepository {
void save(User user);

Optional<User> find(Long userId);

void update(Long userId, User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,10 @@ public Optional<User> find(Long userId) {

return user;
}

@Override
public void update(Long userId, User user) {
userData.replace(userId, user);
System.out.println("userData.get(userId) = " + userData.get(userId).getName());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ public interface UserService{
void saveUser(UserRequestDto userDto);

Optional<User> findUserById(Long userId);

boolean updateUser(Long userId, UserRequestDto userDto);
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,23 @@ public void saveUser(UserRequestDto userDto) {
public Optional<User> findUserById(Long userId) {
return userRepository.find(userId);
}

@Override
public boolean updateUser(Long userId, UserRequestDto updateDto) {
boolean updateResult = true;

Optional<User> user = userRepository.find(userId);

if(user.isEmpty()) {
updateResult = false;
return updateResult;
}

User updatedUser = user.get();
updatedUser.update(updateDto);

userRepository.update(userId, updatedUser);

return updateResult;
}
}

0 comments on commit 81dad06

Please sign in to comment.