From 490ca7d2df80ec7b04b14e5d1562ac6c0b1429b6 Mon Sep 17 00:00:00 2001 From: Hwangseoeun Date: Sun, 30 Nov 2025 16:57:26 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9D=BC=EA=B8=B0=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../petlog/diary/controller/DiaryController.java | 3 +++ .../java/com/petlog/diary/service/DiaryService.java | 13 +++++++++++++ .../java/com/petlog/docs/DiaryControllerDocs.java | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/petlog/diary/controller/DiaryController.java b/src/main/java/com/petlog/diary/controller/DiaryController.java index 34a8f78..7054ee0 100644 --- a/src/main/java/com/petlog/diary/controller/DiaryController.java +++ b/src/main/java/com/petlog/diary/controller/DiaryController.java @@ -112,9 +112,12 @@ public ResponseEntity> updateDiary( @DeleteMapping("/{diaryId}") public ResponseEntity> deleteDiary( + @Authenticated final Long memberId, @PathVariable final Long groupId, @PathVariable final Long diaryId ) { + diaryService.deleteDiary(memberId, groupId, diaryId); + return ResponseEntity.ok( ApiResponse.success(DELETE_DIARY) ); diff --git a/src/main/java/com/petlog/diary/service/DiaryService.java b/src/main/java/com/petlog/diary/service/DiaryService.java index e3028db..4fdba2a 100644 --- a/src/main/java/com/petlog/diary/service/DiaryService.java +++ b/src/main/java/com/petlog/diary/service/DiaryService.java @@ -139,4 +139,17 @@ private void validateIsDairyWriter(final Member member, final Diary diary) { throw new IllegalArgumentException("일기 작성자만 수정할 수 있습니다."); } } + + @Transactional + public void deleteDiary(final Long memberId, final Long groupId, final Long diaryId) { + final Member member = getMember(memberId); + final PetGroup petGroup = getPetGroup(groupId); + getPetGroupMember(member, petGroup); + + final Diary diary = getDiaryDetail(diaryId); + validateIsDairyWriter(member, diary); + + diaryImageRepository.deleteAllByDiary(diary); + diaryRepository.deleteById(diaryId); + } } diff --git a/src/main/java/com/petlog/docs/DiaryControllerDocs.java b/src/main/java/com/petlog/docs/DiaryControllerDocs.java index 946b99f..52477d7 100644 --- a/src/main/java/com/petlog/docs/DiaryControllerDocs.java +++ b/src/main/java/com/petlog/docs/DiaryControllerDocs.java @@ -15,7 +15,7 @@ @Tag(name = "일기 API") public interface DiaryControllerDocs { - @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "일기 생성에 성공하였습니다.") + @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "201", description = "일기 생성에 성공하였습니다.") @Operation(summary = "일기 생성 API") ResponseEntity> createDiary(@Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final CreateDiaryRequestDto request); @@ -33,5 +33,5 @@ public interface DiaryControllerDocs { @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "일기 삭제가 성공하였습니다.") @Operation(summary = "일기 삭제 API") - ResponseEntity> deleteDiary(@PathVariable final Long groupId, @PathVariable final Long diaryId); + ResponseEntity> deleteDiary(@Authenticated final Long memberId, @PathVariable final Long groupId, @PathVariable final Long diaryId); }