From f063391041be14524f7d4145561e131e5c055da2 Mon Sep 17 00:00:00 2001 From: hyeonseo Date: Sun, 22 Sep 2024 00:50:44 +0900 Subject: [PATCH 01/10] =?UTF-8?q?Fix:=20null=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20#107?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../confirm/dto/ConfirmUpdateResponse.java | 4 +- .../confirm/service/ConfirmService.java | 48 ++++++------------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/confirm/dto/ConfirmUpdateResponse.java b/src/main/java/outfoot/outfootserver/confirm/dto/ConfirmUpdateResponse.java index d312404..9d66007 100644 --- a/src/main/java/outfoot/outfootserver/confirm/dto/ConfirmUpdateResponse.java +++ b/src/main/java/outfoot/outfootserver/confirm/dto/ConfirmUpdateResponse.java @@ -11,13 +11,13 @@ @Builder public record ConfirmUpdateResponse( @Schema(description = "제목", example = "하루에 물 2리터 마시기") String title, - @Schema(description = "한 줄 소개", example = "건강한 이너뷰티") String intro, + @Schema(description = "한 줄 소개", example = "건강한 이너뷰티") String content, @Schema(description = "이미지", example = "image/png") String imageUrl) { public static ConfirmUpdateResponse toConfirm(Confirm confirm){ return ConfirmUpdateResponse.builder() .title(confirm.getTitle()) - .intro(confirm.getContent()) + .content(confirm.getContent()) .imageUrl(confirm.getImageUrl()) .build(); } diff --git a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java index 73132c3..cc49a09 100644 --- a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java +++ b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java @@ -28,30 +28,9 @@ public class ConfirmService { private final String path = "confirm/"; @Transactional public ConfirmResponse saveConfirm(CheckPage checkPage, ConfirmRequest dto, Member member) { - -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); -// LocalDateTime now = LocalDateTime.now(); -// String startOfDay = now.toLocalDate().atStartOfDay().format(formatter); -// String endOfDay = now.toLocalDate().atTime(23,59,59).format(formatter); - -// 하나의 체크페이지에 하루에 한 번 인증 가능 -// List dailyConfirms = confirmRepository.findByCheckPageIdAndCreatedAtBetween(checkPageId, startOfDay, endOfDay); -// if (dailyConfirms.size() >= 1){ -// throw new ConfirmException(ConfirmErrorCode.CONFIRM_DAILY_LIMIT_EXCEEDED); -// } - - String imageUrl = null; - if (dto.image() != null && !dto.image().isEmpty()) { - MultipartFile image = dto.image(); - imageUrl = fileUploader.uploadFile(image, path); - } - + String imageUrl = uploadImage(dto.image()); Confirm confirm = confirmRepository.save(ConfirmRequest.toConfirm(dto, checkPage, imageUrl, member)); - - long likeCount = confirm.getLikeCount(); - long dislikeCount = confirm.getDisLikeCount(); - - return ConfirmResponse.toConfirm(confirm, likeCount, dislikeCount, imageUrl); + return ConfirmResponse.toConfirm(confirm, confirm.getLikeCount(), confirm.getDisLikeCount(), imageUrl); } @Transactional @@ -62,17 +41,15 @@ public ConfirmUpdateResponse updateConfirm(Long confirmId, UpdateConfirmRequest throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); } - String imageUrl = null; - if (dto.image() != null && !dto.image().isEmpty()){ - if (confirm.getImageUrl() != null){ - fileUploader.deleteFile(confirm.getImageUrl(), path); - } - imageUrl = fileUploader.uploadFile(dto.image(), path); + if (confirm.getImageUrl() != null) { + fileUploader.deleteFile(confirm.getImageUrl(), "confirm"); } + String imageUrl = uploadImage(dto.image()); + + confirm.updateConfirm(dto.title(), dto.content(), imageUrl); Confirm updatedConfirm = confirmRepository.save(confirm); - return ConfirmUpdateResponse.toConfirm(updatedConfirm); } @@ -96,15 +73,18 @@ public void deleteConfirm(Long confirmId, Member member) { public ConfirmResponse findConfirm(Long id, Member member){ Confirm confirm = findById(id); - long likeCount = confirm.getLikeCount(); - long dislikeCount = confirm.getDisLikeCount(); - String imageUrl = confirm.getImageUrl(); - return ConfirmResponse.toConfirm(confirm, likeCount, dislikeCount, imageUrl); + return ConfirmResponse.toConfirm(confirm, confirm.getLikeCount(), confirm.getDisLikeCount(), confirm.getImageUrl()); } public Confirm findById (Long confirmId) { return confirmRepository.findById(confirmId) .orElseThrow(() -> new ConfirmException(ConfirmErrorCode.CONFIRM_NOT_FOUND)); + } + public String uploadImage(MultipartFile image){ + if (image == null || image.isEmpty()) { + throw new AuthException(AuthErrorCode.FILE_NOT_FOUND); + } + return fileUploader.uploadFile(image, path); } } From 2f59595cabbaafe21684f6c15d3c90959015ea67 Mon Sep 17 00:00:00 2001 From: hyeonseo Date: Sun, 22 Sep 2024 01:13:44 +0900 Subject: [PATCH 02/10] =?UTF-8?q?Fix:=20=EB=A9=A4=EB=B2=84=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EB=B0=98=ED=99=98=20#107?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outfoot/outfootserver/member/dto/MyProfileResponse.java | 2 ++ .../outfoot/outfootserver/member/service/MemberService.java | 1 + 2 files changed, 3 insertions(+) diff --git a/src/main/java/outfoot/outfootserver/member/dto/MyProfileResponse.java b/src/main/java/outfoot/outfootserver/member/dto/MyProfileResponse.java index b19cb56..3b263c9 100644 --- a/src/main/java/outfoot/outfootserver/member/dto/MyProfileResponse.java +++ b/src/main/java/outfoot/outfootserver/member/dto/MyProfileResponse.java @@ -2,11 +2,13 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; +import org.springframework.web.multipart.MultipartFile; @Builder public record MyProfileResponse( @Schema(description = "이름", example = "주아정") String name, @Schema(description = "한 줄 소개", example = "안녕하세요.") String myIntro, + @Schema(description = "이미지", example = "img/png") String imageUrl, @Schema(description = "친구 추가용 코드", example = "ABC") String code, @Schema(description = "친구 수", example = "ABC") int friendCount ) { diff --git a/src/main/java/outfoot/outfootserver/member/service/MemberService.java b/src/main/java/outfoot/outfootserver/member/service/MemberService.java index 5905c4d..ebedc39 100644 --- a/src/main/java/outfoot/outfootserver/member/service/MemberService.java +++ b/src/main/java/outfoot/outfootserver/member/service/MemberService.java @@ -127,6 +127,7 @@ public MyProfileResponse findMyInfo(HttpServletRequest request) { return MyProfileResponse.builder() .name(member.getNickname()) .myIntro(member.getMyIntro()) + .imageUrl(member.getImageUrl()) .code(member.getCode()) .friendCount(member.getFromMember().size()) .build(); From 9c20c8905a4f963d6bcd4286c5645283289cf35d Mon Sep 17 00:00:00 2001 From: hyeonseo Date: Sun, 22 Sep 2024 01:36:56 +0900 Subject: [PATCH 03/10] =?UTF-8?q?Fix:=20=EC=9D=B8=EC=A6=9D=ED=8C=90=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20API=20=EB=B6=84=EB=A6=AC=20#107?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../confirm/controller/ConfirmController.java | 24 +++++++++++++++---- .../outfootserver/confirm/domain/Confirm.java | 5 +++- .../confirm/service/ConfirmService.java | 17 ++++++++++--- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java index cdddce5..df1693d 100644 --- a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java +++ b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java @@ -64,8 +64,7 @@ public BasicResponse deleteConfirm(@PathVariable("id") Long confirmId,Ht return ResponseUtil.success("인증판 삭제 성공"); } - - @Operation(summary = "인증판 수정") + @Operation(summary = "인증판 이미지 수정") @Parameters({ @Parameter(name = "confirm id", description = "공백 X", example = "1"), }) @@ -73,14 +72,29 @@ public BasicResponse deleteConfirm(@PathVariable("id") Long confirmId,Ht @ApiResponse(responseCode = "200", description = "인증판 수정에 성공하였습니다."), @ApiResponse(responseCode = "400", description = "인증판을 찾을 수 없습니다."), }) - @PutMapping("/{id}") - public BasicResponse updateMemo(@PathVariable("id") Long id, + @PutMapping("image/{id}") + public BasicResponse updateImage(@PathVariable("id") Long id, HttpServletRequest request, @ModelAttribute UpdateConfirmRequest dto){ Member member = memberService.loadMember(request); - return ResponseUtil.success(confirmService.updateConfirm(id, dto, member)); + return ResponseUtil.success(confirmService.updateImage(id, dto, member)); } + @Operation(summary = "인증판 메모 수정") + @Parameters({ + @Parameter(name = "confirm id", description = "공백 X", example = "1"), + }) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "인증판 수정에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "인증판을 찾을 수 없습니다."), + }) + @PutMapping("content/{id}") + public BasicResponse updateMemo(@PathVariable("id") Long id, + HttpServletRequest request, + @ModelAttribute UpdateConfirmRequest dto){ + Member member = memberService.loadMember(request); + return ResponseUtil.success(confirmService.updateMemo(id, dto, member)); + } @Operation(summary = "인증판 조회") @Parameters({ diff --git a/src/main/java/outfoot/outfootserver/confirm/domain/Confirm.java b/src/main/java/outfoot/outfootserver/confirm/domain/Confirm.java index cafaa95..a88f26e 100644 --- a/src/main/java/outfoot/outfootserver/confirm/domain/Confirm.java +++ b/src/main/java/outfoot/outfootserver/confirm/domain/Confirm.java @@ -60,9 +60,12 @@ public Confirm(String title, String content, String imageUrl, CheckPage checkPag this.checkPage = checkPage; } - public void updateConfirm(String title, String content, String imageUrl) { + public void updateMemo(String title, String content) { this.title = title; this.content = content; + } + + public void updateImage(String imageUrl) { if (imageUrl != null) { this.imageUrl = imageUrl; } diff --git a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java index cc49a09..d7d915a 100644 --- a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java +++ b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java @@ -34,7 +34,7 @@ public ConfirmResponse saveConfirm(CheckPage checkPage, ConfirmRequest dto, Memb } @Transactional - public ConfirmUpdateResponse updateConfirm(Long confirmId, UpdateConfirmRequest dto, Member member) { + public ConfirmUpdateResponse updateImage(Long confirmId, UpdateConfirmRequest dto, Member member) { Confirm confirm = findById(confirmId); if (confirm.getMember() != member) { @@ -44,11 +44,22 @@ public ConfirmUpdateResponse updateConfirm(Long confirmId, UpdateConfirmRequest if (confirm.getImageUrl() != null) { fileUploader.deleteFile(confirm.getImageUrl(), "confirm"); } - String imageUrl = uploadImage(dto.image()); + confirm.updateImage(imageUrl); + + Confirm updatedConfirm = confirmRepository.save(confirm); + return ConfirmUpdateResponse.toConfirm(updatedConfirm); + } + @Transactional + public ConfirmUpdateResponse updateMemo(Long confirmId, UpdateConfirmRequest dto, Member member) { + Confirm confirm = findById(confirmId); + + if (confirm.getMember() != member) { + throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); + } - confirm.updateConfirm(dto.title(), dto.content(), imageUrl); + confirm.updateMemo(dto.title(), dto.content()); Confirm updatedConfirm = confirmRepository.save(confirm); return ConfirmUpdateResponse.toConfirm(updatedConfirm); } From 70faebd71b05e19bd19cedc3f218565244709c72 Mon Sep 17 00:00:00 2001 From: ljinny Date: Sun, 22 Sep 2024 20:26:58 +0900 Subject: [PATCH 04/10] =?UTF-8?q?Fix:=20=ED=8C=A8=EC=8A=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=20=EC=82=AD=EC=A0=9C=20#104?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/outfoot/outfootserver/member/domain/Member.java | 9 +-------- .../outfoot/outfootserver/member/dto/MyPageRequest.java | 3 +-- .../outfoot/outfootserver/member/dto/SignUpRequest.java | 4 ---- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/member/domain/Member.java b/src/main/java/outfoot/outfootserver/member/domain/Member.java index 92b390d..5ac0361 100644 --- a/src/main/java/outfoot/outfootserver/member/domain/Member.java +++ b/src/main/java/outfoot/outfootserver/member/domain/Member.java @@ -39,9 +39,6 @@ public class Member extends BaseTimeEntity { @Column private String email; - // @NotNull - private String password; - @Column(name = "provider", nullable = false, length = 10) private String provider; @@ -66,12 +63,11 @@ public class Member extends BaseTimeEntity { private List toMember = new ArrayList<>(); @Builder - public Member(UUID username, String nickname, String email, String myIntro, String password, String provider, String providerId, String code, String imageUrl) { + public Member(UUID username, String nickname, String email, String myIntro, String provider, String providerId, String code, String imageUrl) { this.username = username; this.nickname = nickname; this.email = email; this.myIntro = myIntro; - this.password = password; this.provider = provider; this.providerId = providerId; this.code = code; @@ -88,9 +84,6 @@ public void updateMember(MyPageRequest dto, String imageUrl){ if ( dto.myIntro() != null ) { this.myIntro = dto.myIntro(); } - if ( dto.password() != null ) { - this.password = dto.password(); - } if ( imageUrl != null ) { this.imageUrl = imageUrl; } diff --git a/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java b/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java index 5ccac15..a7d65cc 100644 --- a/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java +++ b/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java @@ -10,7 +10,6 @@ public record MyPageRequest( @Schema(description = "프로필 이미지", example = "img/png")MultipartFile image, @Schema(description = "닉네임", example = "ajung") String nickname, @Schema(description = "한 줄 소개", example = "안녕하세요") String myIntro, - @Schema(description = "이메일", example = "ajung7038@naver.com") @Email String email, - @Schema(description = "비밀번호", example = "password") String password + @Schema(description = "이메일", example = "ajung7038@naver.com") @Email String email ) { } diff --git a/src/main/java/outfoot/outfootserver/member/dto/SignUpRequest.java b/src/main/java/outfoot/outfootserver/member/dto/SignUpRequest.java index bfb0e7a..83f8a2b 100644 --- a/src/main/java/outfoot/outfootserver/member/dto/SignUpRequest.java +++ b/src/main/java/outfoot/outfootserver/member/dto/SignUpRequest.java @@ -21,10 +21,6 @@ public class SignUpRequest { @Schema(description = "닉네임", example = "ajung") private String nickname; - @Schema(description = "비밀번호", example = "password") - @NotBlank - private String password; - @Schema(description = "이메일", example = "ajung7038@naver.com") @NotBlank @Email private String email; From 341f7f0ad46381ba91d6bc390e2411be7c35349e Mon Sep 17 00:00:00 2001 From: ljinny Date: Sun, 22 Sep 2024 22:17:49 +0900 Subject: [PATCH 05/10] =?UTF-8?q?Fix:=20=EC=B9=9C=EA=B5=AC=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=ED=94=84=EB=A1=9C=ED=95=84=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EB=B0=98=ED=99=98=20#109?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outfoot/outfootserver/friend/dto/FriendListResponse.java | 4 +++- .../outfoot/outfootserver/member/service/MemberService.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/outfoot/outfootserver/friend/dto/FriendListResponse.java b/src/main/java/outfoot/outfootserver/friend/dto/FriendListResponse.java index 2d69753..2683e21 100644 --- a/src/main/java/outfoot/outfootserver/friend/dto/FriendListResponse.java +++ b/src/main/java/outfoot/outfootserver/friend/dto/FriendListResponse.java @@ -9,12 +9,14 @@ public record FriendListResponse( @Schema(description = "친구 아이디", example = "1") Long id, @Schema(description = "친구 닉네임", example = "정정") String nickname, - @Schema(description = "친구 한 줄 소개", example = "안녕하세요") String intro) { + @Schema(description = "친구 한 줄 소개", example = "안녕하세요") String intro, + @Schema(description = "친구 프로필 이미지", example = "img/png") String imageUrl) { public static FriendListResponse toFriendList(Friend friend){ return FriendListResponse.builder() .id(friend.getToMember().getId()) .nickname(friend.getNickname()) + .imageUrl(friend.getToMember().getImageUrl()) .intro(friend.getToMember().getMyIntro()) .build(); } diff --git a/src/main/java/outfoot/outfootserver/member/service/MemberService.java b/src/main/java/outfoot/outfootserver/member/service/MemberService.java index 5905c4d..39c152d 100644 --- a/src/main/java/outfoot/outfootserver/member/service/MemberService.java +++ b/src/main/java/outfoot/outfootserver/member/service/MemberService.java @@ -116,6 +116,7 @@ public MyProfileResponse loadMemberId(Long id) { return MyProfileResponse.builder() .name(member.getNickname()) + .imageUrl(member.getImageUrl()) .myIntro(member.getMyIntro()) .code(member.getCode()) .friendCount(member.getFromMember().size()) From c69b90fe84ac6a2974e8283ec5ba820f72b7a75a Mon Sep 17 00:00:00 2001 From: hyeonseo Date: Sun, 22 Sep 2024 22:36:39 +0900 Subject: [PATCH 06/10] =?UTF-8?q?Fix:=20URL,=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../confirm/controller/ConfirmController.java | 4 ++-- .../confirm/service/ConfirmService.java | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java index df1693d..7eb8f18 100644 --- a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java +++ b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java @@ -72,7 +72,7 @@ public BasicResponse deleteConfirm(@PathVariable("id") Long confirmId,Ht @ApiResponse(responseCode = "200", description = "인증판 수정에 성공하였습니다."), @ApiResponse(responseCode = "400", description = "인증판을 찾을 수 없습니다."), }) - @PutMapping("image/{id}") + @PutMapping("images/{id}") public BasicResponse updateImage(@PathVariable("id") Long id, HttpServletRequest request, @ModelAttribute UpdateConfirmRequest dto){ @@ -88,7 +88,7 @@ public BasicResponse updateImage(@PathVariable("id") Long @ApiResponse(responseCode = "200", description = "인증판 수정에 성공하였습니다."), @ApiResponse(responseCode = "400", description = "인증판을 찾을 수 없습니다."), }) - @PutMapping("content/{id}") + @PutMapping("contents/{id}") public BasicResponse updateMemo(@PathVariable("id") Long id, HttpServletRequest request, @ModelAttribute UpdateConfirmRequest dto){ diff --git a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java index d7d915a..fa83e5f 100644 --- a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java +++ b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java @@ -26,8 +26,20 @@ public class ConfirmService { private final ConfirmRepository confirmRepository; private final TestFileUploader fileUploader; private final String path = "confirm/"; + @Transactional public ConfirmResponse saveConfirm(CheckPage checkPage, ConfirmRequest dto, Member member) { +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// LocalDateTime now = LocalDateTime.now(); +// String startOfDay = now.toLocalDate().atStartOfDay().format(formatter); +// String endOfDay = now.toLocalDate().atTime(23,59,59).format(formatter); + +// 하나의 체크페이지에 하루에 한 번 인증 가능 +// List dailyConfirms = confirmRepository.findByCheckPageIdAndCreatedAtBetween(checkPageId, startOfDay, endOfDay); +// if (dailyConfirms.size() >= 1){ +// throw new ConfirmException(ConfirmErrorCode.CONFIRM_DAILY_LIMIT_EXCEEDED); +// } + String imageUrl = uploadImage(dto.image()); Confirm confirm = confirmRepository.save(ConfirmRequest.toConfirm(dto, checkPage, imageUrl, member)); return ConfirmResponse.toConfirm(confirm, confirm.getLikeCount(), confirm.getDisLikeCount(), imageUrl); @@ -82,17 +94,17 @@ public void deleteConfirm(Long confirmId, Member member) { } - public ConfirmResponse findConfirm(Long id, Member member){ + public ConfirmResponse findConfirm(Long id, Member member) { Confirm confirm = findById(id); return ConfirmResponse.toConfirm(confirm, confirm.getLikeCount(), confirm.getDisLikeCount(), confirm.getImageUrl()); } - public Confirm findById (Long confirmId) { + public Confirm findById(Long confirmId) { return confirmRepository.findById(confirmId) .orElseThrow(() -> new ConfirmException(ConfirmErrorCode.CONFIRM_NOT_FOUND)); } - public String uploadImage(MultipartFile image){ + public String uploadImage(MultipartFile image) { if (image == null || image.isEmpty()) { throw new AuthException(AuthErrorCode.FILE_NOT_FOUND); } From 9f0322eb5ec24ca6c669c9c2b83322e36b3893be Mon Sep 17 00:00:00 2001 From: ajeong Date: Sat, 28 Sep 2024 12:50:59 +0900 Subject: [PATCH 07/10] =?UTF-8?q?Feat:=20=EB=82=B4=20=EC=9D=B8=EC=A6=9D?= =?UTF-8?q?=ED=8C=90=20=EC=9D=B8=EC=A0=95,=20=EB=B6=80=EC=A0=95=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC=20#112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emotion/exception/EmotionErrorCode.java | 4 +++- .../outfootserver/emotion/service/DislikeService.java | 9 ++++++++- .../outfootserver/emotion/service/LikeService.java | 10 ++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/emotion/exception/EmotionErrorCode.java b/src/main/java/outfoot/outfootserver/emotion/exception/EmotionErrorCode.java index 4941cf6..eb024de 100644 --- a/src/main/java/outfoot/outfootserver/emotion/exception/EmotionErrorCode.java +++ b/src/main/java/outfoot/outfootserver/emotion/exception/EmotionErrorCode.java @@ -12,7 +12,9 @@ public enum EmotionErrorCode { DISLIKE_ALREADY_PRESSED("부정 버튼을 중복으로 누를 수 없습니다."), DISLIKE_NOT_PRESSED("부정 버튼이 눌려있지 않아 취소가 불가능합니다."), - DUPLICATED_EMOTION("중복으로 버튼을 누를 수 없습니다. (인정, 부정)"); + DUPLICATED_EMOTION("중복으로 버튼을 누를 수 없습니다. (인정, 부정)"), + + NOT_PRESSED_SELF("자신의 인증판에는 좋아요 또는 싫어요를 누를 수 없습니다."); private String message; } diff --git a/src/main/java/outfoot/outfootserver/emotion/service/DislikeService.java b/src/main/java/outfoot/outfootserver/emotion/service/DislikeService.java index 2cf901c..1071c4b 100644 --- a/src/main/java/outfoot/outfootserver/emotion/service/DislikeService.java +++ b/src/main/java/outfoot/outfootserver/emotion/service/DislikeService.java @@ -23,6 +23,11 @@ public class DislikeService { @Transactional public void addDislike(Member member, Confirm confirm) { + + if (confirm.getMember().equals(member)) { + throw new EmotionException(EmotionErrorCode.NOT_PRESSED_SELF); + } + dislikeRepository.findByDislike(member, confirm) .ifPresent(e -> { throw new EmotionException(EmotionErrorCode.DISLIKE_ALREADY_PRESSED); @@ -51,7 +56,9 @@ public void cancelDislike(Member member, Confirm confirm) { confirm.getDislikes().remove(dislike); confirmRepository.save(confirm); - } , () -> {}); + }, () -> { + throw new EmotionException(EmotionErrorCode.DISLIKE_NOT_PRESSED); + }); } } diff --git a/src/main/java/outfoot/outfootserver/emotion/service/LikeService.java b/src/main/java/outfoot/outfootserver/emotion/service/LikeService.java index 51869d6..fa529b1 100644 --- a/src/main/java/outfoot/outfootserver/emotion/service/LikeService.java +++ b/src/main/java/outfoot/outfootserver/emotion/service/LikeService.java @@ -22,6 +22,11 @@ public class LikeService { @Transactional public void addLike(Member member, Confirm confirm) { + + if (confirm.getMember().equals(member)) { + throw new EmotionException(EmotionErrorCode.NOT_PRESSED_SELF); + } + likeRepository.findByLike(member, confirm) .ifPresent(e -> { throw new EmotionException(EmotionErrorCode.LIKE_ALREADY_PRESSED); @@ -38,7 +43,6 @@ public void addLike(Member member, Confirm confirm) { .build(); likeRepository.save(like); - confirm.getLikes().add(like); confirmRepository.save(confirm); } @@ -50,6 +54,8 @@ public void cancelLike(Member member, Confirm confirm) { likeRepository.delete(like); confirm.getLikes().remove(like); confirmRepository.save(confirm); - }, () -> {}); + }, () -> { + throw new EmotionException(EmotionErrorCode.LIKE_NOT_PRESSED); + }); } } From 6618b2b24827d7eeb8b2f2b175cc461265d32b5a Mon Sep 17 00:00:00 2001 From: ajeong Date: Sat, 28 Sep 2024 12:54:54 +0900 Subject: [PATCH 08/10] =?UTF-8?q?Fix:=20equals=20=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20#112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outfootserver/confirm/service/ConfirmService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java index fa83e5f..d1c1ee6 100644 --- a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java +++ b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java @@ -49,7 +49,7 @@ public ConfirmResponse saveConfirm(CheckPage checkPage, ConfirmRequest dto, Memb public ConfirmUpdateResponse updateImage(Long confirmId, UpdateConfirmRequest dto, Member member) { Confirm confirm = findById(confirmId); - if (confirm.getMember() != member) { + if (!confirm.getMember().equals(member)) { throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); } @@ -67,7 +67,7 @@ public ConfirmUpdateResponse updateImage(Long confirmId, UpdateConfirmRequest dt public ConfirmUpdateResponse updateMemo(Long confirmId, UpdateConfirmRequest dto, Member member) { Confirm confirm = findById(confirmId); - if (confirm.getMember() != member) { + if (!confirm.getMember().equals(member)) { throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); } @@ -80,14 +80,14 @@ public ConfirmUpdateResponse updateMemo(Long confirmId, UpdateConfirmRequest dto public void deleteConfirm(Long confirmId, Member member) { Confirm confirm = findById(confirmId); - if (confirm.getMember() != member) { + if (!confirm.getMember().equals(member)) { throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); } if (confirm.getImageUrl() != null) { fileUploader.deleteFile(confirm.getImageUrl(), "confirm"); } - if (confirm.getMember() != member) { + if (!confirm.getMember().equals(member)) { throw new AuthException(AuthErrorCode.UNAUTHORIZED_USER); } confirmRepository.delete(confirm); From cf0388fc9ecf10bf1580594e6c60a3f54ce7f2c6 Mon Sep 17 00:00:00 2001 From: ajeong Date: Sat, 28 Sep 2024 13:10:52 +0900 Subject: [PATCH 09/10] =?UTF-8?q?Fix:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC=20?= =?UTF-8?q?#112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/controller/MemberController.java | 12 +++++++++++- .../outfoot/outfootserver/member/domain/Member.java | 5 ++++- .../outfootserver/member/dto/MyPageImageRequest.java | 9 +++++++++ .../outfootserver/member/dto/MyPageRequest.java | 1 - .../outfootserver/member/service/MemberService.java | 11 +++++++++-- 5 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 src/main/java/outfoot/outfootserver/member/dto/MyPageImageRequest.java diff --git a/src/main/java/outfoot/outfootserver/member/controller/MemberController.java b/src/main/java/outfoot/outfootserver/member/controller/MemberController.java index 6c75bfb..a5f61be 100644 --- a/src/main/java/outfoot/outfootserver/member/controller/MemberController.java +++ b/src/main/java/outfoot/outfootserver/member/controller/MemberController.java @@ -43,6 +43,17 @@ public BasicResponse UpdateMyPage (@Valid @ModelAttribute MyPage return ResponseUtil.success(member); } + @PutMapping("/my/images") + @Operation(summary = "프로필 내용 수정") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "프로필 정보 수정에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "존재하지 않는 회원입니다."), + }) + public BasicResponse UpdateMyPageWithImage (@Valid @ModelAttribute MyPageImageRequest dto, HttpServletRequest request) { + MyPageResponse member = memberService.updateImage(dto, request); + return ResponseUtil.success(member); + } + @GetMapping("/my") @Operation(summary = "내 정보 조회") @ApiResponses(value = { @@ -55,7 +66,6 @@ public BasicResponse MyProfile (HttpServletRequest request) { @GetMapping("/test/test") public BasicResponse testTest (HttpServletRequest request) { -// System.out.println(request); return ResponseUtil.success(memberService.loadMember(request)); } } diff --git a/src/main/java/outfoot/outfootserver/member/domain/Member.java b/src/main/java/outfoot/outfootserver/member/domain/Member.java index 5ac0361..484f518 100644 --- a/src/main/java/outfoot/outfootserver/member/domain/Member.java +++ b/src/main/java/outfoot/outfootserver/member/domain/Member.java @@ -74,7 +74,7 @@ public Member(UUID username, String nickname, String email, String myIntro, Stri this.imageUrl = imageUrl; } - public void updateMember(MyPageRequest dto, String imageUrl){ + public void updateMember(MyPageRequest dto){ if ( dto.nickname() != null ) { this.nickname = dto.nickname(); } @@ -84,6 +84,9 @@ public void updateMember(MyPageRequest dto, String imageUrl){ if ( dto.myIntro() != null ) { this.myIntro = dto.myIntro(); } + } + + public void updateMember(String imageUrl) { if ( imageUrl != null ) { this.imageUrl = imageUrl; } diff --git a/src/main/java/outfoot/outfootserver/member/dto/MyPageImageRequest.java b/src/main/java/outfoot/outfootserver/member/dto/MyPageImageRequest.java new file mode 100644 index 0000000..59166bf --- /dev/null +++ b/src/main/java/outfoot/outfootserver/member/dto/MyPageImageRequest.java @@ -0,0 +1,9 @@ +package outfoot.outfootserver.member.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Email; +import org.springframework.web.multipart.MultipartFile; + +public record MyPageImageRequest( + @Schema(description = "프로필 이미지", example = "img/png") MultipartFile image) { +} diff --git a/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java b/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java index a7d65cc..7456181 100644 --- a/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java +++ b/src/main/java/outfoot/outfootserver/member/dto/MyPageRequest.java @@ -7,7 +7,6 @@ import outfoot.outfootserver.member.domain.Member; public record MyPageRequest( - @Schema(description = "프로필 이미지", example = "img/png")MultipartFile image, @Schema(description = "닉네임", example = "ajung") String nickname, @Schema(description = "한 줄 소개", example = "안녕하세요") String myIntro, @Schema(description = "이메일", example = "ajung7038@naver.com") @Email String email diff --git a/src/main/java/outfoot/outfootserver/member/service/MemberService.java b/src/main/java/outfoot/outfootserver/member/service/MemberService.java index e04be62..d34b2d3 100644 --- a/src/main/java/outfoot/outfootserver/member/service/MemberService.java +++ b/src/main/java/outfoot/outfootserver/member/service/MemberService.java @@ -47,6 +47,13 @@ public MemberResponse save(SignUpRequest request) { @Transactional public MyPageResponse update(MyPageRequest dto, HttpServletRequest request){ + Member member = loadMember(request); + member.updateMember(dto); + return MyPageResponse.toMyPage(member, member.getImageUrl()); + } + + @Transactional + public MyPageResponse updateImage (MyPageImageRequest dto, HttpServletRequest request){ Member member = loadMember(request); String originImageUrl = member.getImageUrl(); @@ -61,10 +68,10 @@ public MyPageResponse update(MyPageRequest dto, HttpServletRequest request){ fileUploader.deleteFile(originImageUrl, path); } } else { - // 새로운 이미지가 존재하지 않는 경우 + // 새로운 이미지가 존재하지 않는 경우 imageUrl = originImageUrl; } - member.updateMember(dto, imageUrl); + member.updateMember(imageUrl); } catch (Exception e) { throw new AuthException(AuthErrorCode.FILE_NOT_FOUND); } From 74996e86ed6e0656e308146e19c3d4a835ce1192 Mon Sep 17 00:00:00 2001 From: hyeonseo Date: Wed, 2 Oct 2024 19:59:05 +0900 Subject: [PATCH 10/10] =?UTF-8?q?Fix:=20=EC=9D=B4=EB=AF=B8=EC=A7=80,=20?= =?UTF-8?q?=EB=82=B4=EC=9A=A9=20request=20=EB=B6=84=EB=A6=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20#114?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../confirm/controller/ConfirmController.java | 7 ++----- .../confirm/dto/UpdateConfirmImageRequest.java | 10 ++++++++++ .../confirm/dto/UpdateConfirmRequest.java | 4 ++-- .../outfootserver/confirm/service/ConfirmService.java | 7 ++----- 4 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmImageRequest.java diff --git a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java index 7eb8f18..72457f6 100644 --- a/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java +++ b/src/main/java/outfoot/outfootserver/confirm/controller/ConfirmController.java @@ -14,10 +14,7 @@ import outfoot.outfootserver.checkpage.service.CheckPageService; import outfoot.outfootserver.common.response.BasicResponse; import outfoot.outfootserver.common.response.ResponseUtil; -import outfoot.outfootserver.confirm.dto.ConfirmRequest; -import outfoot.outfootserver.confirm.dto.ConfirmResponse; -import outfoot.outfootserver.confirm.dto.ConfirmUpdateResponse; -import outfoot.outfootserver.confirm.dto.UpdateConfirmRequest; +import outfoot.outfootserver.confirm.dto.*; import outfoot.outfootserver.confirm.service.ConfirmService; import outfoot.outfootserver.member.domain.Member; import outfoot.outfootserver.member.service.MemberService; @@ -75,7 +72,7 @@ public BasicResponse deleteConfirm(@PathVariable("id") Long confirmId,Ht @PutMapping("images/{id}") public BasicResponse updateImage(@PathVariable("id") Long id, HttpServletRequest request, - @ModelAttribute UpdateConfirmRequest dto){ + @ModelAttribute UpdateConfirmImageRequest dto){ Member member = memberService.loadMember(request); return ResponseUtil.success(confirmService.updateImage(id, dto, member)); } diff --git a/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmImageRequest.java b/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmImageRequest.java new file mode 100644 index 0000000..ee0c119 --- /dev/null +++ b/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmImageRequest.java @@ -0,0 +1,10 @@ +package outfoot.outfootserver.confirm.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springframework.web.multipart.MultipartFile; + +public record UpdateConfirmImageRequest( + @Schema(description = "메모 (제목)", example = "오늘도 뿌듯한 하루 ~~") String title, + @Schema(description = "메모 (내용)", example = "마치 하마가 된 거 같고, 뿌듯함ㅋㅋ") String content, + @Schema(description = "이미지", example = "image/png")MultipartFile image) { +} diff --git a/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmRequest.java b/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmRequest.java index eaced4b..a3b7e3d 100644 --- a/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmRequest.java +++ b/src/main/java/outfoot/outfootserver/confirm/dto/UpdateConfirmRequest.java @@ -5,6 +5,6 @@ public record UpdateConfirmRequest( @Schema(description = "메모 (제목)", example = "오늘도 뿌듯한 하루 ~~") String title, - @Schema(description = "메모 (내용)", example = "마치 하마가 된 거 같고, 뿌듯함ㅋㅋ") String content, - @Schema(description = "이미지", example = "image/png")MultipartFile image) { + @Schema(description = "메모 (내용)", example = "마치 하마가 된 거 같고, 뿌듯함ㅋㅋ") String content + ) { } diff --git a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java index d1c1ee6..15921f5 100644 --- a/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java +++ b/src/main/java/outfoot/outfootserver/confirm/service/ConfirmService.java @@ -6,10 +6,7 @@ import org.springframework.web.multipart.MultipartFile; import outfoot.outfootserver.checkpage.domain.CheckPage; import outfoot.outfootserver.confirm.domain.Confirm; -import outfoot.outfootserver.confirm.dto.ConfirmRequest; -import outfoot.outfootserver.confirm.dto.ConfirmResponse; -import outfoot.outfootserver.confirm.dto.ConfirmUpdateResponse; -import outfoot.outfootserver.confirm.dto.UpdateConfirmRequest; +import outfoot.outfootserver.confirm.dto.*; import outfoot.outfootserver.confirm.exception.ConfirmErrorCode; import outfoot.outfootserver.confirm.exception.ConfirmException; import outfoot.outfootserver.confirm.repository.ConfirmRepository; @@ -46,7 +43,7 @@ public ConfirmResponse saveConfirm(CheckPage checkPage, ConfirmRequest dto, Memb } @Transactional - public ConfirmUpdateResponse updateImage(Long confirmId, UpdateConfirmRequest dto, Member member) { + public ConfirmUpdateResponse updateImage(Long confirmId, UpdateConfirmImageRequest dto, Member member) { Confirm confirm = findById(confirmId); if (!confirm.getMember().equals(member)) {