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); }