From 9651067399b246c93c24747600639dc27315cdca Mon Sep 17 00:00:00 2001 From: Hwangseoeun Date: Sat, 29 Nov 2025 14:48:04 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/petlog/petgroup/controller/PetGroupController.java | 2 +- src/main/java/com/petlog/petgroup/service/PetGroupService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/petlog/petgroup/controller/PetGroupController.java b/src/main/java/com/petlog/petgroup/controller/PetGroupController.java index a1f36ce..3437413 100644 --- a/src/main/java/com/petlog/petgroup/controller/PetGroupController.java +++ b/src/main/java/com/petlog/petgroup/controller/PetGroupController.java @@ -94,7 +94,7 @@ public ResponseEntity> getJoinCode( @Authenticated final Long memberId, @PathVariable final Long groupId ) { - final GetJoinCodeDto dto = petGroupService.getPetGroupJoinCode(memberId, groupId); + final GetJoinCodeDto dto = petGroupService.getJoinCode(memberId, groupId); final GetJoinCodeResponseDto response = new GetJoinCodeResponseDto(dto.joinCode()); return ResponseEntity.ok( diff --git a/src/main/java/com/petlog/petgroup/service/PetGroupService.java b/src/main/java/com/petlog/petgroup/service/PetGroupService.java index 1a9134b..077e720 100644 --- a/src/main/java/com/petlog/petgroup/service/PetGroupService.java +++ b/src/main/java/com/petlog/petgroup/service/PetGroupService.java @@ -131,7 +131,7 @@ private void validateMemberInPetGroup(final Member member, final PetGroup petGro } @Transactional(readOnly = true) - public GetJoinCodeDto getPetGroupJoinCode(final Long memberId, final Long groupId) { + public GetJoinCodeDto getJoinCode(final Long memberId, final Long groupId) { final Member member = getMember(memberId); final PetGroup petGroup = getPetGroup(groupId); validateMemberInPetGroup(member, petGroup); From f35f328b3b6828e45e6ef599c195021266a797f6 Mon Sep 17 00:00:00 2001 From: Hwangseoeun Date: Sat, 29 Nov 2025 15:11:01 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=B0=B8=EA=B3=A0=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EC=88=98=EC=A0=95=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../petlog/docs/PetGroupControllerDocs.java | 2 +- .../controller/PetGroupController.java | 3 +++ .../com/petlog/petgroup/entity/PetGroup.java | 4 ++++ .../repository/PetGroupMemberRepository.java | 3 +++ .../petgroup/service/PetGroupService.java | 22 +++++++++++++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/petlog/docs/PetGroupControllerDocs.java b/src/main/java/com/petlog/docs/PetGroupControllerDocs.java index 17aeebe..3057d79 100644 --- a/src/main/java/com/petlog/docs/PetGroupControllerDocs.java +++ b/src/main/java/com/petlog/docs/PetGroupControllerDocs.java @@ -43,5 +43,5 @@ public interface PetGroupControllerDocs { @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "참고사항 수정에 성공하였습니다.") @Operation(summary = "참고사항 수정 API") - ResponseEntity> updateNote(@PathVariable final Long groupId, @RequestBody final UpdateNoteRequestDto request); + ResponseEntity> updateNote(@Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final UpdateNoteRequestDto request); } diff --git a/src/main/java/com/petlog/petgroup/controller/PetGroupController.java b/src/main/java/com/petlog/petgroup/controller/PetGroupController.java index 3437413..4c4bcbd 100644 --- a/src/main/java/com/petlog/petgroup/controller/PetGroupController.java +++ b/src/main/java/com/petlog/petgroup/controller/PetGroupController.java @@ -117,9 +117,12 @@ public ResponseEntity> getNote( @PatchMapping("/{groupId}/note") public ResponseEntity> updateNote( + @Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final UpdateNoteRequestDto request ) { + petGroupService.updateNote(memberId, groupId, request.note()); + return ResponseEntity.ok( ApiResponse.success(UPDATE_NOTE) ); diff --git a/src/main/java/com/petlog/petgroup/entity/PetGroup.java b/src/main/java/com/petlog/petgroup/entity/PetGroup.java index 2fecdd0..93884d0 100644 --- a/src/main/java/com/petlog/petgroup/entity/PetGroup.java +++ b/src/main/java/com/petlog/petgroup/entity/PetGroup.java @@ -34,4 +34,8 @@ public PetGroup( this.joinCode = joinCode; this.note = note; } + + public void updateNote(final String note) { + this.note = note; + } } diff --git a/src/main/java/com/petlog/petgroup/repository/PetGroupMemberRepository.java b/src/main/java/com/petlog/petgroup/repository/PetGroupMemberRepository.java index 39ea48a..efaa19f 100644 --- a/src/main/java/com/petlog/petgroup/repository/PetGroupMemberRepository.java +++ b/src/main/java/com/petlog/petgroup/repository/PetGroupMemberRepository.java @@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query; import java.util.List; +import java.util.Optional; public interface PetGroupMemberRepository extends JpaRepository { @@ -27,4 +28,6 @@ public interface PetGroupMemberRepository extends JpaRepository findByMemberAndPetGroup(final Member member, final PetGroup group); } diff --git a/src/main/java/com/petlog/petgroup/service/PetGroupService.java b/src/main/java/com/petlog/petgroup/service/PetGroupService.java index 077e720..572fc02 100644 --- a/src/main/java/com/petlog/petgroup/service/PetGroupService.java +++ b/src/main/java/com/petlog/petgroup/service/PetGroupService.java @@ -147,4 +147,26 @@ public GetNoteDto getNote(final Long memberId, final Long groupId) { return new GetNoteDto(petGroup.getNote()); } + + @Transactional + public void updateNote(final Long memberId, final Long groupId, final String note) { + final Member member = getMember(memberId); + final PetGroup petGroup = getPetGroup(groupId); + final PetGroupMember petGroupMember = getPetGroupMember(member, petGroup); + + validateMemberIsGroupOwner(petGroupMember); + + petGroup.updateNote(note); + } + + private PetGroupMember getPetGroupMember(final Member member, final PetGroup petGroup) { + return petGroupMemberRepository.findByMemberAndPetGroup(member, petGroup) + .orElseThrow(() -> new IllegalArgumentException("그룹에 존재하지 않는 회원입니다.")); + } + + private void validateMemberIsGroupOwner(final PetGroupMember petGroupMember) { + if(!petGroupMember.isGroupOwner()) { + throw new IllegalArgumentException("참고사항 수정은 그룹장만 할 수 있습니다."); + } + } }