Skip to content

Commit 2ac9857

Browse files
authored
Merge pull request #78 from Team-Shaka/feat/71
Feat/71 댓글 작성, 삭제 관련 예외 처리 추가
2 parents 599232c + 4ba711f commit 2ac9857

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

src/main/java/treehouse/server/api/comment/business/CommentService.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ public CommentResponseDTO.CommentIdResponseDto createComment(User user, Long tre
169169

170170
public CommentResponseDTO.CommentIdResponseDto createReply(User user, Long treehouseId, Long postId, Long parentId, CommentRequestDTO.createComment request){
171171

172+
if(commentQueryAdapter.getCommentById(parentId).getParentId()!=-1L){
173+
throw new CommentException(GlobalErrorCode.REPLY_CREATE_BAD_REQUEST);
174+
}
172175
TreeHouse treehouse = treehouseQueryAdapter.getTreehouseById(treehouseId);
173176
Post post = postQueryAdapter.findById(postId);
174177
Member writer = memberQueryAdapter.findByUserAndTreehouse(user, treehouse);
@@ -181,8 +184,13 @@ public CommentResponseDTO.CommentIdResponseDto createReply(User user, Long treeh
181184
public void deleteComment(User user, Long treehouseId, Long postId, Long commentId) {
182185

183186
Comment comment = commentQueryAdapter.getCommentById(commentId);
187+
Member loginMember = memberQueryAdapter.findByUserAndTreehouse(user, treehouseQueryAdapter.getTreehouseById(treehouseId));
188+
Member commentWriter = commentQueryAdapter.getCommentById(commentId).getWriter();
189+
Member postWriter = postQueryAdapter.findById(postId).getWriter();
184190

185-
commentCommandAdapter.deleteComment(comment);
191+
if (loginMember.getId() == commentWriter.getId() || loginMember.getId() == postWriter.getId()) {
192+
commentCommandAdapter.deleteComment(comment);
193+
} else throw new CommentException(GlobalErrorCode.COMMENT_DELETE_FORBIDDEN);
186194
}
187195

188196
@Transactional

src/main/java/treehouse/server/api/comment/presentation/CommentApi.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public CommonResponse deleteComment(
8383
@AuthMember @Parameter(hidden = true) User user
8484
)
8585
{
86-
commentService.deleteComment(user,commentId,treehouseId,postId);
86+
commentService.deleteComment(user,treehouseId,postId, commentId);
8787
return CommonResponse.onSuccess(null);
8888
}
8989

src/main/java/treehouse/server/global/exception/GlobalErrorCode.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,17 @@ public enum GlobalErrorCode implements BaseErrorCode{
6565
// POST + 404 Not Found - 찾을 수 없음
6666
POST_NOT_FOUND(NOT_FOUND, "POST404_1", "존재하지 않는 게시글입니다."),
6767

68+
// COMMENT + 403 Forbidden - 금지됨
69+
COMMENT_SELF_REPORT(FORBIDDEN, "COMMENT403_1", "자신의 댓글은 신고할 수 없습니다."),
70+
71+
// COMMENT + 403 Forbidden
72+
COMMENT_DELETE_FORBIDDEN(FORBIDDEN, "COMMENT403_2", "자신이 작성한 게시글에 대한 댓글이나 자신이 작성한 댓글만 삭제 가능합니다."),
73+
6874
// COMMENT + 404 Not Found - 찾을 수 없음
6975
COMMENT_NOT_FOUND(NOT_FOUND, "COMMENT404_1", "존재하지 않는 댓글입니다."),
7076

71-
// COMMENT + 403 Forbidden - 금지됨
72-
COMMENT_SELF_REPORT(FORBIDDEN, "COMMENT403_1", "자신의 댓글은 신고할 수 없습니다."),
77+
// REPLY + 400 Bad Request - 잘못된 요청
78+
REPLY_CREATE_BAD_REQUEST(BAD_REQUEST, "REPLY400_1", "댓글에 대해서만 대댓글 작성 가능합니다."),
7379

7480
// REPLY + 404 Not Found - 찾을 수 없음
7581
REPLY_NOT_FOUND(NOT_FOUND, "REPLY404_1", "존재하지 않는 답글입니다."),

0 commit comments

Comments
 (0)