클라이언트로부터 imageusernamedescription을 form-data 형식으로 전달 받는다.
만약 imageusernamedescription 각 정보들의 수정이 불필요한 경우 null 값을 보낼 수 있도록 required 속성을 false로 설정하였다.
첫 번째로 클라이언트로 부터 전달 받은 image를 AWS S3에 저장한 이후 이미지를 조회할 수 있는 URL을 받는다.
두 번재로 id로 User를 조회한 이후 사용자의 이름, 자기소개, 이미지 정보를 갱신한다.
마지막으로 갱신된 정보를 data에 담아 Response를 반환한다.
UserService
public UserInfoRespDto updateUserInfo(String id, String username, String description, String image){
// id에 해당하는 User 조회하기
User findUser = userRepository.findById(id)
.orElseThrow(() -> new CustomApiException("id에 해당하는 User를 찾을 수 없습니다."));
// User 정보 갱신
findUser.updateInfo(username, image, description);
// 갱신된 User 정보 데이터 베이스에 저장
User savedUser = userRepository.save(findUser);
return UserInfoRespDto.builder()
.nickname(savedUser.getNickname())
.imageUrl(savedUser.getImage())
.description(savedUser.getDescription())
.build();
}
id에 해당하는 User 값을 Database에서 조회한다.
만약 id에 해당하는 User가 존재하지 않는다면 예외처리(CustomApiException)를 진행한다.
updaeInfo() 메소드를 통해 User 필드의 값을 갱신한다.
필드의 값이 갱신된 User를 Database에 저장한다.
저장된 결과값을 DTO에 담아 결과값을 반환한다.
🔥 결과
imageusernamedescription의 값이 null 혹은 필드 자체를 지우고 테스트를 진행한 결과 코드가 정상적으로 수행되는 것을 확인할 수 있었다.
✏️ Description
📱 사용자 정보 수정 화면
나의 정보
페이지에서 사용자 정보를 수정하는 기능이 존재한다. 해당 기능을 위해 클라이언트로 부터이미지
이름
자기소개
정보를 전달받고 해당 유저의 정보를 DB에 갱신한 이후 결과값을 반환한다.🧑💻 코드
UserController
image
username
description
을form-data
형식으로 전달 받는다.image
username
description
각 정보들의 수정이 불필요한 경우 null 값을 보낼 수 있도록required
속성을false
로 설정하였다.image
를 AWS S3에 저장한 이후 이미지를 조회할 수 있는 URL을 받는다.id
로User
를 조회한 이후 사용자의 이름, 자기소개, 이미지 정보를 갱신한다.data
에 담아 Response를 반환한다.UserService
id
에 해당하는User
값을 Database에서 조회한다.id
에 해당하는User
가 존재하지 않는다면 예외처리(CustomApiException
)를 진행한다.updaeInfo()
메소드를 통해User
필드의 값을 갱신한다.User
를 Database에 저장한다.🔥 결과
image
username
description
의 값이 null 혹은 필드 자체를 지우고 테스트를 진행한 결과 코드가 정상적으로 수행되는 것을 확인할 수 있었다.