diff --git a/src/main/java/com/modugarden/common/s3/FileService.java b/src/main/java/com/modugarden/common/s3/FileService.java index 3d9a558..a56eda0 100644 --- a/src/main/java/com/modugarden/common/s3/FileService.java +++ b/src/main/java/com/modugarden/common/s3/FileService.java @@ -35,7 +35,7 @@ public class FileService { public String uploadFile(MultipartFile multipartFile, Long userId, String imageType) { if (multipartFile.isEmpty()) { - return getDefaultRandomProfileImageUrl(); + return null; } String savedFileName = getSavedFileName(multipartFile, userId, imageType); ObjectMetadata metadata = new ObjectMetadata(); diff --git a/src/main/java/com/modugarden/domain/user/controller/UserController.java b/src/main/java/com/modugarden/domain/user/controller/UserController.java index 5fa1d22..66ebb5e 100644 --- a/src/main/java/com/modugarden/domain/user/controller/UserController.java +++ b/src/main/java/com/modugarden/domain/user/controller/UserController.java @@ -56,16 +56,12 @@ public BaseResponseDto readUserInfo(@AuthenticationP return new BaseResponseDto<>(userService.readUserSettingInfo(user.getUserId())); } - @ApiOperation(value = "내 프로필 - 프로필 설정 - 사진 변경", notes = "내 프로필 - 프로필 설정에서 사진을 변경한다.") - @PatchMapping(value = "/me/profileImg", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) - public BaseResponseDto updateProfileImg(@RequestPart(name = "file", required = false) MultipartFile file, @AuthenticationPrincipal ModugardenUser user) throws IOException { - return new BaseResponseDto<>(userService.updateProfileImg(user.getUserId(), file)); - } - - @ApiOperation(value = "내 프로필 - 프로필 설정 - 닉네임 변경", notes = "내 프로필 - 프로필 설정에서 닉네임을 변경한다.") - @PatchMapping("/me/nickname") - public BaseResponseDto updateUserNickname(@RequestBody @Valid UserNicknameRequestDto userNicknameRequestDto, @AuthenticationPrincipal ModugardenUser user) { - return new BaseResponseDto<>(userService.updateUserNickname(user.getUserId(), userNicknameRequestDto)); + @ApiOperation(value = "내 프로필 - 프로필 설정 - 닉네임, 사진 변경", notes = "내 프로필 - 프로필 설정에서 닉네임, 사진을 변경한다.") + @PatchMapping(value = "/me/setting-info", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) + public BaseResponseDto updateUserInfo(@RequestPart @Valid UserNicknameRequestDto userNicknameRequestDto, + @RequestPart(name = "file", required = false) MultipartFile file, + @AuthenticationPrincipal ModugardenUser user) throws IOException { + return new BaseResponseDto<>(userService.updateUserInfo(user.getUserId(), file, userNicknameRequestDto)); } @ApiOperation(value = "내 프로필 - 프로필 설정 - 카테고리 변경", notes = "내 프로필 - 프로필 설정에서 카테고리를 변경한다.") diff --git a/src/main/java/com/modugarden/domain/user/dto/response/UserProfileImgResponseDto.java b/src/main/java/com/modugarden/domain/user/dto/response/UpdateUserInfoResponseDto.java similarity index 70% rename from src/main/java/com/modugarden/domain/user/dto/response/UserProfileImgResponseDto.java rename to src/main/java/com/modugarden/domain/user/dto/response/UpdateUserInfoResponseDto.java index d841381..cda6d8c 100644 --- a/src/main/java/com/modugarden/domain/user/dto/response/UserProfileImgResponseDto.java +++ b/src/main/java/com/modugarden/domain/user/dto/response/UpdateUserInfoResponseDto.java @@ -5,6 +5,7 @@ @AllArgsConstructor @Getter -public class UserProfileImgResponseDto { +public class UpdateUserInfoResponseDto { + private String nickname; private String profileImage; } diff --git a/src/main/java/com/modugarden/domain/user/dto/response/UserNicknameResponseDto.java b/src/main/java/com/modugarden/domain/user/dto/response/UserNicknameResponseDto.java deleted file mode 100644 index 0459e93..0000000 --- a/src/main/java/com/modugarden/domain/user/dto/response/UserNicknameResponseDto.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.modugarden.domain.user.dto.response; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -@AllArgsConstructor -@Getter -public class UserNicknameResponseDto { - private String nickname; -} diff --git a/src/main/java/com/modugarden/domain/user/entity/User.java b/src/main/java/com/modugarden/domain/user/entity/User.java index 36a9aee..abcc51d 100644 --- a/src/main/java/com/modugarden/domain/user/entity/User.java +++ b/src/main/java/com/modugarden/domain/user/entity/User.java @@ -55,11 +55,8 @@ public User(String email, String password, String nickname, this.notification = notification; } - public void updateNickname(String nickname) { + public void updateUserInfo(String nickname, String profileImg) { this.nickname = nickname; - } - - public void updateProfileImage(String profileImg) { this.profileImg = profileImg; } diff --git a/src/main/java/com/modugarden/domain/user/service/UserService.java b/src/main/java/com/modugarden/domain/user/service/UserService.java index 99c807f..8b07838 100644 --- a/src/main/java/com/modugarden/domain/user/service/UserService.java +++ b/src/main/java/com/modugarden/domain/user/service/UserService.java @@ -3,7 +3,6 @@ import com.modugarden.common.error.enums.ErrorMessage; import com.modugarden.common.error.exception.custom.BusinessException; import com.modugarden.common.s3.FileService; -import com.modugarden.domain.auth.entity.ModugardenUser; import com.modugarden.domain.board.repository.BoardRepository; import com.modugarden.domain.category.entity.InterestCategory; import com.modugarden.domain.category.entity.UserInterestCategory; @@ -17,7 +16,6 @@ import com.modugarden.domain.user.dto.response.*; import com.modugarden.domain.user.entity.User; import com.modugarden.domain.user.entity.UserNotification; -import com.modugarden.domain.user.repository.UserNotificationRepository; import com.modugarden.domain.user.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; @@ -63,19 +61,12 @@ public CurrentUserInfoResponseDto readCurrentUserInfo(Long userId) { } @Transactional - public UserNicknameResponseDto updateUserNickname(Long userId, UserNicknameRequestDto userNicknameRequestDto) { + public UpdateUserInfoResponseDto updateUserInfo(Long userId, MultipartFile file, UserNicknameRequestDto userNicknameRequestDto) throws IOException { User user = userRepository.findById(userId).orElseThrow(() -> new BusinessException(ErrorMessage.USER_NOT_FOUND)); String userNickname = userNicknameRequestDto.getNickname().toLowerCase(); - user.updateNickname(userNickname); - return new UserNicknameResponseDto(user.getNickname()); - } - - @Transactional - public UserProfileImgResponseDto updateProfileImg(Long userId, MultipartFile file) throws IOException { - User user = userRepository.findById(userId).orElseThrow(() -> new BusinessException(ErrorMessage.USER_NOT_FOUND)); String profileImageUrl = fileService.uploadFile(file, userId, "profileImage"); - user.updateProfileImage(profileImageUrl); - return new UserProfileImgResponseDto(user.getProfileImg()); + user.updateUserInfo(userNickname, profileImageUrl); + return new UpdateUserInfoResponseDto(userNickname, user.getProfileImg()); } public UserSettingInfoResponseDto readUserSettingInfo(Long userId) {