From 990ae5bab0b5d0920765c2efe2f9ced7e652ad60 Mon Sep 17 00:00:00 2001 From: Eun Date: Sat, 5 Aug 2023 20:21:13 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20AWS=20S3=EB=A5=BC=20=EC=9D=B4=EC=9A=A9?= =?UTF-8?q?=ED=95=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20#57?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/favor/favor/gift/Gift.java | 9 +- .../com/favor/favor/gift/GiftController.java | 7 +- .../favor/favor/gift/GiftPhotoController.java | 122 ++++++++++++++++++ .../favor/favor/gift/GiftPhotoService.java | 110 ++++++++++++++++ .../com/favor/favor/gift/GiftRequestDto.java | 2 + .../com/favor/favor/gift/GiftResponseDto.java | 4 + .../com/favor/favor/gift/GiftService.java | 42 ++++-- .../java/com/favor/favor/photo/GiftPhoto.java | 30 +++++ .../favor/favor/photo/PhotoController.java | 2 +- .../com/favor/favor/photo/PhotoService.java | 10 +- .../photo/{Photo.java => UserPhoto.java} | 4 +- .../main/java/com/favor/favor/user/User.java | 10 +- .../favor/favor/user/UserPhotoController.java | 6 +- .../favor/favor/user/UserPhotoService.java | 33 ++--- .../com/favor/favor/user/UserResponseDto.java | 10 +- 15 files changed, 348 insertions(+), 53 deletions(-) create mode 100644 favor/src/main/java/com/favor/favor/gift/GiftPhotoController.java create mode 100644 favor/src/main/java/com/favor/favor/gift/GiftPhotoService.java create mode 100644 favor/src/main/java/com/favor/favor/photo/GiftPhoto.java rename favor/src/main/java/com/favor/favor/photo/{Photo.java => UserPhoto.java} (86%) diff --git a/favor/src/main/java/com/favor/favor/gift/Gift.java b/favor/src/main/java/com/favor/favor/gift/Gift.java index fa42fab..3a696da 100644 --- a/favor/src/main/java/com/favor/favor/gift/Gift.java +++ b/favor/src/main/java/com/favor/favor/gift/Gift.java @@ -3,7 +3,7 @@ import com.favor.favor.common.enums.Category; import com.favor.favor.common.enums.Emotion; import com.favor.favor.common.TimeStamped; -import com.favor.favor.photo.Photo; +import com.favor.favor.photo.GiftPhoto; import com.favor.favor.user.User; import lombok.*; @@ -11,6 +11,7 @@ import javax.transaction.Transactional; import java.time.LocalDate; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; @Entity @@ -75,5 +76,9 @@ public void setFriendNoList(List friendNoList){ this.friendNoList = friendNoList; } -// @ManyToOne(cascade = Cas) + @OneToMany(cascade = CascadeType.ALL) + private List giftPhotoList = new ArrayList<>(); + public void setGiftPhotoList(List giftPhotoList){ + this.giftPhotoList = giftPhotoList; + } } \ No newline at end of file diff --git a/favor/src/main/java/com/favor/favor/gift/GiftController.java b/favor/src/main/java/com/favor/favor/gift/GiftController.java index 51ff733..1f6b633 100644 --- a/favor/src/main/java/com/favor/favor/gift/GiftController.java +++ b/favor/src/main/java/com/favor/favor/gift/GiftController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -22,7 +23,7 @@ @RestController @RequestMapping("/gifts") @RequiredArgsConstructor -@Log4j2 +@Slf4j public class GiftController { private final GiftService giftService; @@ -181,10 +182,14 @@ public ResponseEntity> deleteGift( giftService.isExistingGiftNo(giftNo); + Gift gift = giftService.findGiftByGiftNo(giftNo); + log.info("[SYSTEM] giftService.findGiftByGiftNo(giftNo) 완료"); GiftResponseDto dto = giftService.returnDto(gift); + log.info("[SYSTEM] giftService.returnDto(gift) 완료"); giftService.deleteGift(giftNo); + log.info("[SYSTEM] giftService.deleteGift(giftNo) 완료"); return ResponseEntity.status(200) .body(DefaultResponseDto.builder() diff --git a/favor/src/main/java/com/favor/favor/gift/GiftPhotoController.java b/favor/src/main/java/com/favor/favor/gift/GiftPhotoController.java new file mode 100644 index 0000000..f0ca617 --- /dev/null +++ b/favor/src/main/java/com/favor/favor/gift/GiftPhotoController.java @@ -0,0 +1,122 @@ +package com.favor.favor.gift; + +import com.favor.favor.common.DefaultResponseDto; +import com.favor.favor.photo.GiftPhoto; +import com.favor.favor.photo.UserPhoto; +import com.favor.favor.user.User; +import com.favor.favor.user.UserPhotoService; +import com.favor.favor.user.UserResponseDto; +import com.favor.favor.user.UserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.transaction.Transactional; +import java.util.List; + +@Api(tags = "Gift-Photo") +@RestController +@RequestMapping("/giftphotos") +@RequiredArgsConstructor +public class GiftPhotoController { + private final GiftPhotoService giftPhotoService; + private final GiftService giftService; + + @ApiOperation(value = "선물 사진 추가") + @ApiResponses(value={ + @ApiResponse(code = 201, + message = "GIFT_PHOTO_LIST_ADDED", + response = UserResponseDto.class), + @ApiResponse(code = 400, + message = "FIELD_REQUIRED / *_CHARACTER_INVALID / *_LENGTH_INVALID"), + @ApiResponse(code = 401, + message = "UNAUTHORIZED_USER"), + @ApiResponse(code = 404, + message = "GIFT_NOT_FOUND"), + @ApiResponse(code = 500, + message = "SERVER_ERROR") + }) + @ResponseStatus(HttpStatus.CREATED) + @PostMapping + public ResponseEntity> addGiftPhotoList( + @ModelAttribute MultipartFile file, + Long giftNo + ) { + giftService.isExistingGiftNo(giftNo); + + Gift gift = giftPhotoService.addGiftPhoto(giftNo, file); + + GiftResponseDto dto = giftService.returnDto(gift); + + return ResponseEntity.status(201) + .body(DefaultResponseDto.builder() + .responseCode("GIFT_PHOTO_LIST_ADDED") + .responseMessage("선물 사진 추가") + .data(dto) + .build()); + } + + @ApiOperation("선물 사진 목록 조회") + @ApiResponses(value={ + @ApiResponse(code = 200, + message = "GIFT_PHOTO_LIST_FOUND", + response = UserResponseDto.class), + @ApiResponse(code = 401, + message = "UNAUTHORIZED_USER"), + @ApiResponse(code = 404, + message = "GIFT_NOT_FOUND | FILE_NOT_FOUND"), + @ApiResponse(code = 500, + message = "SERVER_ERROR") + }) + @ResponseStatus(HttpStatus.OK) + @Transactional + @GetMapping + public ResponseEntity> getUserProfilePhoto(Long giftNo) { + Gift gift = giftService.findGiftByGiftNo(giftNo); + + List dto = giftPhotoService.getGiftPhotoList(giftNo); + + return ResponseEntity.status(200) + .body(DefaultResponseDto.builder() + .responseCode("GIFT_PHOTO_LIST_FOUND") + .responseMessage("선물 사진 목록 조회 완료") + .data(dto) + .build()); + } + + @ApiOperation("선물 사진 삭제") + @ApiResponses(value={ + @ApiResponse(code = 200, + message = "GIFT_PHOTO_DELETED", + response = UserResponseDto.class), + @ApiResponse(code = 401, + message = "UNAUTHORIZED_USER"), + @ApiResponse(code = 404, + message = "GIFT_NOT_FOUND | FILE_NOT_FOUND"), + @ApiResponse(code = 500, + message = "SERVER_ERROR") + }) + @ResponseStatus(HttpStatus.OK) + @Transactional + @DeleteMapping + public ResponseEntity> deleteUserProfilePhoto( + Long giftNo, String fileUrl) { + + Gift gift = giftPhotoService.deleteGiftPhoto(giftNo, fileUrl); + GiftResponseDto dto = new GiftResponseDto(gift); + + return ResponseEntity.status(200) + .body(DefaultResponseDto.builder() + .responseCode("GIFT_PHOTO_DELETED") + .responseMessage("선물 사진 삭제 완료") + .data(dto) + .build()); + } +} diff --git a/favor/src/main/java/com/favor/favor/gift/GiftPhotoService.java b/favor/src/main/java/com/favor/favor/gift/GiftPhotoService.java new file mode 100644 index 0000000..866890d --- /dev/null +++ b/favor/src/main/java/com/favor/favor/gift/GiftPhotoService.java @@ -0,0 +1,110 @@ +package com.favor.favor.gift; + +import com.favor.favor.exception.CustomException; +import com.favor.favor.photo.GiftPhoto; +import com.favor.favor.photo.PhotoService; +import com.favor.favor.user.User; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.transaction.Transactional; +import java.net.URL; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; + +import static com.favor.favor.exception.ExceptionCode.FILE_NOT_FOUND; +import static com.favor.favor.exception.ExceptionCode.SERVER_ERROR; + +@Service +@RequiredArgsConstructor +public class GiftPhotoService { + private final GiftRepository giftRepository; + private final GiftService giftService; + private final PhotoService photoService; + + //선물 사진 목록에 사진 추가 + @Transactional + public Gift addGiftPhoto(Long giftNo, MultipartFile file){ + Gift gift = giftService.findGiftByGiftNo(giftNo); + List giftPhotoList = gift.getGiftPhotoList(); + + String fileName = file.getOriginalFilename(); + String storedFileName = getGiftFileName(fileName); + + String giftPhotoUrl = photoService.uploadFileToS3(storedFileName, file); + + try{ + GiftPhoto giftPhoto = GiftPhoto.builder() + .photoUrl(giftPhotoUrl) + .build(); + + giftPhotoList.add(giftPhoto); + + }catch(RuntimeException e){ + throw new CustomException(e, SERVER_ERROR); + } + +// for(MultipartFile file : fileList){ +// String fileName = file.getOriginalFilename(); +// String storedFileName = getGiftFileName(fileName); +// +// String giftPhotoUrl = photoService.uploadFileToS3(storedFileName, file); +// try{ +// GiftPhoto giftPhoto = GiftPhoto.builder() +// .photoUrl(giftPhotoUrl) +// .build(); +// +// giftPhotoList.add(giftPhoto); +// +// }catch(RuntimeException e){ +// throw new CustomException(e, SERVER_ERROR); +// } +// } + gift.setGiftPhotoList(giftPhotoList); + return giftRepository.save(gift); + } + + //선물 사진 목록 조회 + public List getGiftPhotoList(Long giftNo){ + return giftService.findGiftByGiftNo(giftNo).getGiftPhotoList(); + } + + //선물 사진 삭제 + public Gift deleteGiftPhoto(Long giftNo, String photoUrl){ + Gift gift = giftService.findGiftByGiftNo(giftNo); + List giftPhotoList = gift.getGiftPhotoList(); + + GiftPhoto temp = null; + + for(GiftPhoto giftPhoto : giftPhotoList){ + if(photoUrl.equals(giftPhoto.getPhotoUrl())){ + temp = giftPhoto; + String fileName = extractGiftPhotoFileName(photoUrl); + photoService.deleteFileFromS3(fileName); + break; + } + } + giftPhotoList.remove(temp); + + return giftRepository.save(gift); + } + + //선물 사진 이름 생성 + public String getGiftFileName(String fileName){ + return "gift/" + UUID.randomUUID()+ fileName.substring(fileName.lastIndexOf('.')); + } + + //선물 사진 이름 추출 + public static String extractGiftPhotoFileName(String photoUrl) { + String fileName; + try { + fileName = photoUrl.substring(photoUrl.indexOf("gift/")); + } catch (Exception e) { + throw new CustomException(e, FILE_NOT_FOUND); + } + + return fileName; + } +} diff --git a/favor/src/main/java/com/favor/favor/gift/GiftRequestDto.java b/favor/src/main/java/com/favor/favor/gift/GiftRequestDto.java index 156d5f2..ba3d987 100644 --- a/favor/src/main/java/com/favor/favor/gift/GiftRequestDto.java +++ b/favor/src/main/java/com/favor/favor/gift/GiftRequestDto.java @@ -10,6 +10,7 @@ import javax.transaction.Transactional; import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; @Getter @@ -53,6 +54,7 @@ public Gift toEntity(User user, LocalDate giftDate){ .isGiven(isGiven) .user(user) .friendNoList(friendNoList) + .giftPhotoList(new ArrayList<>()) .build(); } } \ No newline at end of file diff --git a/favor/src/main/java/com/favor/favor/gift/GiftResponseDto.java b/favor/src/main/java/com/favor/favor/gift/GiftResponseDto.java index cbcdab3..6e88689 100644 --- a/favor/src/main/java/com/favor/favor/gift/GiftResponseDto.java +++ b/favor/src/main/java/com/favor/favor/gift/GiftResponseDto.java @@ -3,6 +3,7 @@ import com.favor.favor.common.enums.Category; import com.favor.favor.common.enums.Emotion; import com.favor.favor.friend.FriendResponseDto; +import com.favor.favor.photo.GiftPhoto; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -33,6 +34,7 @@ public class GiftResponseDto { private List friendList; private LocalDateTime createdAt; private LocalDateTime modifiedAt; + private List giftPhotoList; @Builder @@ -50,6 +52,7 @@ public GiftResponseDto(Gift gift){ this.friendList = new ArrayList<>(); this.createdAt = gift.getCreatedAt(); this.modifiedAt = gift.getModifiedAt(); + this.giftPhotoList = gift.getGiftPhotoList(); log.info("[GiftResponseDto] 실행 완료"); } @Builder @@ -67,6 +70,7 @@ public GiftResponseDto(Gift gift, List friendList){ this.friendList = friendList; this.createdAt = gift.getCreatedAt(); this.modifiedAt = gift.getModifiedAt(); + this.giftPhotoList = gift.getGiftPhotoList(); log.info("[GiftResponseDto] 실행 완료"); } } diff --git a/favor/src/main/java/com/favor/favor/gift/GiftService.java b/favor/src/main/java/com/favor/favor/gift/GiftService.java index e56b5fb..9202ff8 100644 --- a/favor/src/main/java/com/favor/favor/gift/GiftService.java +++ b/favor/src/main/java/com/favor/favor/gift/GiftService.java @@ -136,28 +136,46 @@ public Gift findGiftByGiftNo(Long giftNo){ } + @Transactional public GiftResponseDto returnDto(Gift gift){ List friendResponseDtoList = new ArrayList<>(); List friendNoList = gift.getFriendNoList(); List deletedNoList = new ArrayList<>(); - for(Long f : friendNoList){ - Friend friend = null; - try{ - friend = findFriendByFriendNo(f); - }catch(Exception e){ - deletedNoList.add(f); + + for(Long f : new ArrayList<>(friendNoList)){ + if(findFriendByFriendNo(f) == null){ + friendNoList.remove(f); continue; + }else{ + Friend friend = findFriendByFriendNo(f); + friendResponseDtoList.add(new FriendResponseDto(friend)); } - FriendResponseDto dto = new FriendResponseDto(friend); - friendResponseDtoList.add(dto); - } - for(Long f : deletedNoList){ - friendNoList.remove(f); - } + +// Friend friend = null; +// try{ +// friend = findFriendByFriendNo(f); +// }catch(Exception e){ +// throw new CustomException(e, FRIEND_NOT_FOUND); +// deletedNoList.add(f); +// continue; +// } +// FriendResponseDto dto = new FriendResponseDto(friend); +// friendResponseDtoList.add(dto); + } + log.info("[SYSTEM] for(Long f : friendNoList) 완료"); +// +// for(Long f : new ArrayList<>(friendNoList)){ +// friendNoList.remove(f); +// } +// log.info("[SYSTEM] for(Long f : deletedNoList) 완료"); + gift.setFriendNoList(friendNoList); + log.info("[SYSTEM] gift.setFriendNoList(friendNoList) 완료"); + giftRepository.save(gift); + log.info("[SYSTEM] giftRepository.save(gift) 완료"); return new GiftResponseDto(gift, friendResponseDtoList); } diff --git a/favor/src/main/java/com/favor/favor/photo/GiftPhoto.java b/favor/src/main/java/com/favor/favor/photo/GiftPhoto.java new file mode 100644 index 0000000..b567e4e --- /dev/null +++ b/favor/src/main/java/com/favor/favor/photo/GiftPhoto.java @@ -0,0 +1,30 @@ +package com.favor.favor.photo; + +import com.favor.favor.common.TimeStamped; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class GiftPhoto extends TimeStamped { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String photoUrl; + + @Builder + public GiftPhoto(String photoUrl) { + this.photoUrl = photoUrl; + } + + +} \ No newline at end of file diff --git a/favor/src/main/java/com/favor/favor/photo/PhotoController.java b/favor/src/main/java/com/favor/favor/photo/PhotoController.java index f7a9009..03bab9c 100644 --- a/favor/src/main/java/com/favor/favor/photo/PhotoController.java +++ b/favor/src/main/java/com/favor/favor/photo/PhotoController.java @@ -36,7 +36,7 @@ public class PhotoController { public ResponseEntity> savePhoto( @ModelAttribute MultipartFile photo){ - Photo result = photoService.savePhoto(photo); + UserPhoto result = photoService.savePhoto(photo); return ResponseEntity.status(201) .body(DefaultResponseDto.builder() diff --git a/favor/src/main/java/com/favor/favor/photo/PhotoService.java b/favor/src/main/java/com/favor/favor/photo/PhotoService.java index 00565be..dec534e 100644 --- a/favor/src/main/java/com/favor/favor/photo/PhotoService.java +++ b/favor/src/main/java/com/favor/favor/photo/PhotoService.java @@ -5,7 +5,6 @@ import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.PutObjectRequest; import com.favor.favor.exception.CustomException; -import com.favor.favor.user.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -14,7 +13,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.net.URL; import java.util.Objects; import java.util.UUID; @@ -88,22 +86,22 @@ public String getStoredFileName(String fileName){ //사진 저장 @Transactional - public Photo savePhoto(MultipartFile file) { + public UserPhoto savePhoto(MultipartFile file) { String filename = file.getOriginalFilename(); - Photo photo = new Photo(filename); + UserPhoto userPhoto = new UserPhoto(filename); String storedFileName = getStoredFileName(filename); String brandPhotoUrl = uploadFileToS3(storedFileName, file); try { - photo = Photo.builder() + userPhoto = UserPhoto.builder() .photoUrl(brandPhotoUrl) .build(); } catch (RuntimeException e) { throw new CustomException(e, SERVER_ERROR); } - return photo; + return userPhoto; } } diff --git a/favor/src/main/java/com/favor/favor/photo/Photo.java b/favor/src/main/java/com/favor/favor/photo/UserPhoto.java similarity index 86% rename from favor/src/main/java/com/favor/favor/photo/Photo.java rename to favor/src/main/java/com/favor/favor/photo/UserPhoto.java index 2c5d390..08d0966 100644 --- a/favor/src/main/java/com/favor/favor/photo/Photo.java +++ b/favor/src/main/java/com/favor/favor/photo/UserPhoto.java @@ -14,7 +14,7 @@ @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class Photo extends TimeStamped { +public class UserPhoto extends TimeStamped { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @@ -22,7 +22,7 @@ public class Photo extends TimeStamped { private String photoUrl; @Builder - public Photo(String photoUrl) { + public UserPhoto(String photoUrl) { this.photoUrl = photoUrl; } diff --git a/favor/src/main/java/com/favor/favor/user/User.java b/favor/src/main/java/com/favor/favor/user/User.java index 79ae47c..18b57e7 100644 --- a/favor/src/main/java/com/favor/favor/user/User.java +++ b/favor/src/main/java/com/favor/favor/user/User.java @@ -7,7 +7,7 @@ import com.favor.favor.common.TimeStamped; import com.favor.favor.friend.Friend; import com.favor.favor.gift.Gift; -import com.favor.favor.photo.Photo; +import com.favor.favor.photo.UserPhoto; import com.favor.favor.reminder.Reminder; import lombok.*; import org.springframework.security.core.GrantedAuthority; @@ -79,14 +79,14 @@ public void setFavorList(List favorList) { private List friendList = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL) - private Photo userProfilePhoto; - public void setUserProfilePhoto(Photo userPhoto) { + private UserPhoto userProfilePhoto; + public void setUserProfilePhoto(UserPhoto userPhoto) { this.userProfilePhoto = userPhoto; } @OneToOne(cascade = CascadeType.ALL) - private Photo userBackgroundPhoto; - public void setUserBackgroundPhoto(Photo userPhoto) { + private UserPhoto userBackgroundPhoto; + public void setUserBackgroundPhoto(UserPhoto userPhoto) { this.userBackgroundPhoto = userPhoto; } diff --git a/favor/src/main/java/com/favor/favor/user/UserPhotoController.java b/favor/src/main/java/com/favor/favor/user/UserPhotoController.java index 01303ca..0a120ee 100644 --- a/favor/src/main/java/com/favor/favor/user/UserPhotoController.java +++ b/favor/src/main/java/com/favor/favor/user/UserPhotoController.java @@ -1,7 +1,7 @@ package com.favor.favor.user; import com.favor.favor.common.DefaultResponseDto; -import com.favor.favor.photo.Photo; +import com.favor.favor.photo.UserPhoto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -75,7 +75,7 @@ public ResponseEntity> updateUserProfilePhoto( public ResponseEntity> getUserProfilePhoto( @AuthenticationPrincipal User loginUser ) { - Photo dto = userPhotoService.getUserProfilePhoto(loginUser.getUserNo()); + UserPhoto dto = userPhotoService.getUserProfilePhoto(loginUser.getUserNo()); return ResponseEntity.status(200) .body(DefaultResponseDto.builder() @@ -168,7 +168,7 @@ public ResponseEntity> updateUserBackgroundPhoto( public ResponseEntity> getUserBackgroundPhoto( @AuthenticationPrincipal User loginUser ) { - Photo dto = userPhotoService.getUserBackgroundPhoto(loginUser.getUserNo()); + UserPhoto dto = userPhotoService.getUserBackgroundPhoto(loginUser.getUserNo()); return ResponseEntity.status(200) .body(DefaultResponseDto.builder() diff --git a/favor/src/main/java/com/favor/favor/user/UserPhotoService.java b/favor/src/main/java/com/favor/favor/user/UserPhotoService.java index ccba27c..df24384 100644 --- a/favor/src/main/java/com/favor/favor/user/UserPhotoService.java +++ b/favor/src/main/java/com/favor/favor/user/UserPhotoService.java @@ -1,7 +1,7 @@ package com.favor.favor.user; import com.favor.favor.exception.CustomException; -import com.favor.favor.photo.Photo; +import com.favor.favor.photo.UserPhoto; import com.favor.favor.photo.PhotoService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -11,14 +11,15 @@ import java.net.URL; import java.util.UUID; +import static com.favor.favor.exception.ExceptionCode.FILE_NOT_FOUND; import static com.favor.favor.exception.ExceptionCode.SERVER_ERROR; @Service @RequiredArgsConstructor public class UserPhotoService { private final UserRepository userRepository; - private final PhotoService photoService; private final UserService userService; + private final PhotoService photoService; //유저 프로필사진 등록/수정 @Transactional @@ -28,25 +29,25 @@ public User updateUserProfilePhoto(Long userNo, MultipartFile file) { deleteUserProfilePhoto(userNo); } - String filename = file.getOriginalFilename(); - Photo photo = null; - String storedFileName = getUserProfileFileName(filename); + String fileName = file.getOriginalFilename(); + UserPhoto userPhoto = null; + String storedFileName = getUserProfileFileName(fileName); - String photoUrl = photoService.uploadFileToS3(storedFileName, file); + String profilePhotoUrl = photoService.uploadFileToS3(storedFileName, file); try { - photo = Photo.builder() - .photoUrl(photoUrl) + userPhoto = UserPhoto.builder() + .photoUrl(profilePhotoUrl) .build(); } catch (RuntimeException e) { throw new CustomException(e, SERVER_ERROR); } - user.setUserProfilePhoto(photo); + user.setUserProfilePhoto(userPhoto); return userRepository.save(user); } //유저 프로필사진 조회 - public Photo getUserProfilePhoto(Long userNo) { + public UserPhoto getUserProfilePhoto(Long userNo) { return userService.findUserByUserNo(userNo).getUserProfilePhoto(); } @@ -73,24 +74,24 @@ public User updateUserBackgroundPhoto(Long userNo, MultipartFile file) { deleteUserBackgroundPhoto(userNo); } String filename = file.getOriginalFilename(); - Photo photo = null; + UserPhoto userPhoto = null; String storedFileName = getUserBackgroundFileName(filename); - String photoUrl = photoService.uploadFileToS3(storedFileName, file); + String backgroundPhotoUrl = photoService.uploadFileToS3(storedFileName, file); try { - photo = Photo.builder() - .photoUrl(photoUrl) + userPhoto = UserPhoto.builder() + .photoUrl(backgroundPhotoUrl) .build(); } catch (RuntimeException e) { throw new CustomException(e, SERVER_ERROR); } - user.setUserBackgroundPhoto(photo); + user.setUserBackgroundPhoto(userPhoto); return userRepository.save(user); } //유저 배경사진 조회 - public Photo getUserBackgroundPhoto(Long userNo) { + public UserPhoto getUserBackgroundPhoto(Long userNo) { return userService.findUserByUserNo(userNo).getUserBackgroundPhoto(); } diff --git a/favor/src/main/java/com/favor/favor/user/UserResponseDto.java b/favor/src/main/java/com/favor/favor/user/UserResponseDto.java index a3e5d99..d1abf4a 100644 --- a/favor/src/main/java/com/favor/favor/user/UserResponseDto.java +++ b/favor/src/main/java/com/favor/favor/user/UserResponseDto.java @@ -4,7 +4,7 @@ import com.favor.favor.common.enums.Favor; import com.favor.favor.common.enums.Role; import com.favor.favor.friend.FriendResponseDto; -import com.favor.favor.photo.Photo; +import com.favor.favor.photo.UserPhoto; import com.favor.favor.reminder.ReminderResponseDto; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -55,10 +55,10 @@ public class UserResponseDto { private List favorList; @ApiModelProperty(value = "") - private Photo userProfilePhoto; + private UserPhoto userProfileUserPhoto; @ApiModelProperty(value = "") - private Photo userBackgroundPhoto; + private UserPhoto userBackgroundUserPhoto; @Builder public UserResponseDto(User user, @@ -79,7 +79,7 @@ public UserResponseDto(User user, this.friendList = friendList; this.favorList = favorList; this.anniversaryList = anniversaryList; - this.userProfilePhoto = user.getUserProfilePhoto(); - this.userBackgroundPhoto = user.getUserBackgroundPhoto(); + this.userProfileUserPhoto = user.getUserProfilePhoto(); + this.userBackgroundUserPhoto = user.getUserBackgroundPhoto(); } }