Skip to content

Commit 69737bb

Browse files
authored
Merge pull request #35 from PetLog-project/feat/delete_diary
일기 삭제 API 구현
2 parents 54e943a + 490ca7d commit 69737bb

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/main/java/com/petlog/diary/controller/DiaryController.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,12 @@ public ResponseEntity<ApiResponse<Void>> updateDiary(
112112

113113
@DeleteMapping("/{diaryId}")
114114
public ResponseEntity<ApiResponse<Void>> deleteDiary(
115+
@Authenticated final Long memberId,
115116
@PathVariable final Long groupId,
116117
@PathVariable final Long diaryId
117118
) {
119+
diaryService.deleteDiary(memberId, groupId, diaryId);
120+
118121
return ResponseEntity.ok(
119122
ApiResponse.success(DELETE_DIARY)
120123
);

src/main/java/com/petlog/diary/service/DiaryService.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,17 @@ private void validateIsDairyWriter(final Member member, final Diary diary) {
139139
throw new IllegalArgumentException("일기 작성자만 수정할 수 있습니다.");
140140
}
141141
}
142+
143+
@Transactional
144+
public void deleteDiary(final Long memberId, final Long groupId, final Long diaryId) {
145+
final Member member = getMember(memberId);
146+
final PetGroup petGroup = getPetGroup(groupId);
147+
getPetGroupMember(member, petGroup);
148+
149+
final Diary diary = getDiaryDetail(diaryId);
150+
validateIsDairyWriter(member, diary);
151+
152+
diaryImageRepository.deleteAllByDiary(diary);
153+
diaryRepository.deleteById(diaryId);
154+
}
142155
}

src/main/java/com/petlog/docs/DiaryControllerDocs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@Tag(name = "일기 API")
1616
public interface DiaryControllerDocs {
1717

18-
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "일기 생성에 성공하였습니다.")
18+
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "201", description = "일기 생성에 성공하였습니다.")
1919
@Operation(summary = "일기 생성 API")
2020
ResponseEntity<ApiResponse<Void>> createDiary(@Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final CreateDiaryRequestDto request);
2121

@@ -33,5 +33,5 @@ public interface DiaryControllerDocs {
3333

3434
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "일기 삭제가 성공하였습니다.")
3535
@Operation(summary = "일기 삭제 API")
36-
ResponseEntity<ApiResponse<Void>> deleteDiary(@PathVariable final Long groupId, @PathVariable final Long diaryId);
36+
ResponseEntity<ApiResponse<Void>> deleteDiary(@Authenticated final Long memberId, @PathVariable final Long groupId, @PathVariable final Long diaryId);
3737
}

0 commit comments

Comments
 (0)