From 3528fd64544b3313e6f0ee5ec72faca4829509c6 Mon Sep 17 00:00:00 2001 From: soheeparklee Date: Fri, 27 Dec 2024 19:18:23 +0100 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EB=8C=93=EA=B8=80=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/codeit/todo/domain/Comment.java | 10 +++++ .../todo/repository/CommentRepository.java | 9 +++++ .../todo/service/comment/CommentService.java | 8 ++++ .../comment/impl/CommentServiceImpl.java | 38 +++++++++++++++++++ .../service/user/impl/UserServiceImpl.java | 2 +- .../web/controller/CommentController.java | 38 +++++++++++++++++++ .../request/comment/CreateCommentRequest.java | 22 +++++++++++ .../comment/CreateCommentResponse.java | 16 ++++++++ 8 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/codeit/todo/repository/CommentRepository.java create mode 100644 src/main/java/com/codeit/todo/service/comment/CommentService.java create mode 100644 src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java create mode 100644 src/main/java/com/codeit/todo/web/controller/CommentController.java create mode 100644 src/main/java/com/codeit/todo/web/dto/request/comment/CreateCommentRequest.java create mode 100644 src/main/java/com/codeit/todo/web/dto/response/comment/CreateCommentResponse.java diff --git a/src/main/java/com/codeit/todo/domain/Comment.java b/src/main/java/com/codeit/todo/domain/Comment.java index 2eaa922..4a09d4f 100644 --- a/src/main/java/com/codeit/todo/domain/Comment.java +++ b/src/main/java/com/codeit/todo/domain/Comment.java @@ -2,6 +2,7 @@ import jakarta.persistence.*; import lombok.AccessLevel; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @@ -28,4 +29,13 @@ public class Comment { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "complete_id", nullable = false) private Complete complete; + + @Builder + public Comment(int commentId, String content, LocalDateTime createdAt, User user, Complete complete) { + this.commentId = commentId; + this.content = content; + this.createdAt = createdAt; + this.user = user; + this.complete = complete; + } } diff --git a/src/main/java/com/codeit/todo/repository/CommentRepository.java b/src/main/java/com/codeit/todo/repository/CommentRepository.java new file mode 100644 index 0000000..84749d3 --- /dev/null +++ b/src/main/java/com/codeit/todo/repository/CommentRepository.java @@ -0,0 +1,9 @@ +package com.codeit.todo.repository; + + +import com.codeit.todo.domain.Comment; +import org.springframework.data.jpa.repository.JpaRepository; +public interface CommentRepository extends JpaRepository { + +} + diff --git a/src/main/java/com/codeit/todo/service/comment/CommentService.java b/src/main/java/com/codeit/todo/service/comment/CommentService.java new file mode 100644 index 0000000..86a75f5 --- /dev/null +++ b/src/main/java/com/codeit/todo/service/comment/CommentService.java @@ -0,0 +1,8 @@ +package com.codeit.todo.service.comment; + +import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; + +public interface CommentService { + CreateCommentResponse saveComment(int userId, CreateCommentRequest request); +} diff --git a/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java new file mode 100644 index 0000000..b70888e --- /dev/null +++ b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java @@ -0,0 +1,38 @@ +package com.codeit.todo.service.comment.impl; + +import com.codeit.todo.common.exception.complete.CompleteNotFoundException; +import com.codeit.todo.domain.Comment; +import com.codeit.todo.domain.Complete; +import com.codeit.todo.domain.User; +import com.codeit.todo.repository.CommentRepository; +import com.codeit.todo.repository.CompleteRepository; +import com.codeit.todo.service.comment.CommentService; +import com.codeit.todo.service.user.UserService; +import com.codeit.todo.service.user.impl.UserServiceImpl; +import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class CommentServiceImpl implements CommentService { + + private final UserServiceImpl userServiceImpl; + private final CompleteRepository completeRepository; + private final CommentRepository commentRepository; + + @Override + public CreateCommentResponse saveComment(int userId, CreateCommentRequest request) { + + User user = userServiceImpl.getUser(userId); + Complete complete = completeRepository.findById(request.completeId()) + .orElseThrow(()-> new CompleteNotFoundException(String.valueOf(request.completeId()))); + + Comment comment = request.toEntity(request.content(), user, complete); + Comment savedComment = commentRepository.save(comment); + return CreateCommentResponse.fromEntity(savedComment); + } +} diff --git a/src/main/java/com/codeit/todo/service/user/impl/UserServiceImpl.java b/src/main/java/com/codeit/todo/service/user/impl/UserServiceImpl.java index c8200d9..b7d0cbe 100644 --- a/src/main/java/com/codeit/todo/service/user/impl/UserServiceImpl.java +++ b/src/main/java/com/codeit/todo/service/user/impl/UserServiceImpl.java @@ -162,7 +162,7 @@ public ReadMyPageResponse findUserInfoAndFollows(int userId) { return ReadMyPageResponse.from(followerCount, followeeCount); } - private User getUser(int userId){ + public User getUser(int userId){ User user = userRepository.findById(userId) .orElseThrow(()-> new UserNotFoundException(String.valueOf(userId), "User")); return user; diff --git a/src/main/java/com/codeit/todo/web/controller/CommentController.java b/src/main/java/com/codeit/todo/web/controller/CommentController.java new file mode 100644 index 0000000..5f26172 --- /dev/null +++ b/src/main/java/com/codeit/todo/web/controller/CommentController.java @@ -0,0 +1,38 @@ +package com.codeit.todo.web.controller; + +import com.codeit.todo.repository.CustomUserDetails; +import com.codeit.todo.service.comment.CommentService; +import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.response.Response; +import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/comments") +public class CommentController { + + private final CommentService commentService; + + @Operation(summary = "댓글 생성", description = "새로운 댓글 생성 API") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "댓글 생성 성공") + }) + @PostMapping + public Response createComment( + @AuthenticationPrincipal CustomUserDetails customUserDetails, + @Valid @RequestBody CreateCommentRequest request + ){ + int userId = customUserDetails.getUserId(); + return Response.ok(commentService.saveComment(userId, request)); + } +} diff --git a/src/main/java/com/codeit/todo/web/dto/request/comment/CreateCommentRequest.java b/src/main/java/com/codeit/todo/web/dto/request/comment/CreateCommentRequest.java new file mode 100644 index 0000000..4827095 --- /dev/null +++ b/src/main/java/com/codeit/todo/web/dto/request/comment/CreateCommentRequest.java @@ -0,0 +1,22 @@ +package com.codeit.todo.web.dto.request.comment; + +import com.codeit.todo.domain.*; +import jakarta.validation.constraints.NotNull; + + +import java.time.LocalDateTime; + +public record CreateCommentRequest( + int completeId, + @NotNull + String content +) { + public Comment toEntity(String content, User user, Complete complete) { + return Comment.builder() + .content(content) + .createdAt(LocalDateTime.now()) + .user(user) + .complete(complete) + .build(); + } +} diff --git a/src/main/java/com/codeit/todo/web/dto/response/comment/CreateCommentResponse.java b/src/main/java/com/codeit/todo/web/dto/response/comment/CreateCommentResponse.java new file mode 100644 index 0000000..c7b24a4 --- /dev/null +++ b/src/main/java/com/codeit/todo/web/dto/response/comment/CreateCommentResponse.java @@ -0,0 +1,16 @@ +package com.codeit.todo.web.dto.response.comment; + +import com.codeit.todo.domain.Comment; +import com.codeit.todo.domain.Goal; +import lombok.Builder; + +@Builder +public record CreateCommentResponse(int commentId ) { + + public static CreateCommentResponse fromEntity(Comment savedComment) { + return CreateCommentResponse.builder() + .commentId(savedComment.getCommentId()) + .build(); + } + +} From cb61cdc66c40adf200f4eef6103653b53f19ed28 Mon Sep 17 00:00:00 2001 From: soheeparklee Date: Sat, 28 Dec 2024 00:51:59 +0100 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EB=8C=93=EA=B8=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comment/CommentNotFoundException.java | 14 ++++++++++ .../java/com/codeit/todo/domain/Comment.java | 4 +++ .../todo/service/comment/CommentService.java | 4 +++ .../comment/impl/CommentServiceImpl.java | 27 +++++++++++++++++++ .../web/controller/CommentController.java | 21 ++++++++++++--- .../request/comment/UpdateCommentRequest.java | 10 +++++++ .../comment/UpdateCommentResponse.java | 15 +++++++++++ 7 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/codeit/todo/common/exception/comment/CommentNotFoundException.java create mode 100644 src/main/java/com/codeit/todo/web/dto/request/comment/UpdateCommentRequest.java create mode 100644 src/main/java/com/codeit/todo/web/dto/response/comment/UpdateCommentResponse.java diff --git a/src/main/java/com/codeit/todo/common/exception/comment/CommentNotFoundException.java b/src/main/java/com/codeit/todo/common/exception/comment/CommentNotFoundException.java new file mode 100644 index 0000000..ebea797 --- /dev/null +++ b/src/main/java/com/codeit/todo/common/exception/comment/CommentNotFoundException.java @@ -0,0 +1,14 @@ +package com.codeit.todo.common.exception.comment; + +import com.codeit.todo.common.exception.EntityNotFoundException; + +public class CommentNotFoundException extends EntityNotFoundException { + private static final String ENTITY_TYPE = "comment"; + + /** + * @param request 엔티티를 찾기 위해 요청한 값 + */ + public CommentNotFoundException(String request) { + super(request, ENTITY_TYPE); + } +} diff --git a/src/main/java/com/codeit/todo/domain/Comment.java b/src/main/java/com/codeit/todo/domain/Comment.java index 4a09d4f..e9a9e63 100644 --- a/src/main/java/com/codeit/todo/domain/Comment.java +++ b/src/main/java/com/codeit/todo/domain/Comment.java @@ -38,4 +38,8 @@ public Comment(int commentId, String content, LocalDateTime createdAt, User user this.user = user; this.complete = complete; } + + public void update(String content){ + this.content = content; + } } diff --git a/src/main/java/com/codeit/todo/service/comment/CommentService.java b/src/main/java/com/codeit/todo/service/comment/CommentService.java index 86a75f5..54399b0 100644 --- a/src/main/java/com/codeit/todo/service/comment/CommentService.java +++ b/src/main/java/com/codeit/todo/service/comment/CommentService.java @@ -1,8 +1,12 @@ package com.codeit.todo.service.comment; import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; public interface CommentService { CreateCommentResponse saveComment(int userId, CreateCommentRequest request); + + UpdateCommentResponse updateComment(int userId, int commentId, UpdateCommentRequest request); } diff --git a/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java index b70888e..9e72d0e 100644 --- a/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java +++ b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java @@ -1,5 +1,7 @@ package com.codeit.todo.service.comment.impl; +import com.codeit.todo.common.exception.auth.AuthorizationDeniedException; +import com.codeit.todo.common.exception.comment.CommentNotFoundException; import com.codeit.todo.common.exception.complete.CompleteNotFoundException; import com.codeit.todo.domain.Comment; import com.codeit.todo.domain.Complete; @@ -10,10 +12,13 @@ import com.codeit.todo.service.user.UserService; import com.codeit.todo.service.user.impl.UserServiceImpl; import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Slf4j @Service @@ -24,6 +29,7 @@ public class CommentServiceImpl implements CommentService { private final CompleteRepository completeRepository; private final CommentRepository commentRepository; + @Transactional @Override public CreateCommentResponse saveComment(int userId, CreateCommentRequest request) { @@ -35,4 +41,25 @@ public CreateCommentResponse saveComment(int userId, CreateCommentRequest reques Comment savedComment = commentRepository.save(comment); return CreateCommentResponse.fromEntity(savedComment); } + + @Transactional + @Override + public UpdateCommentResponse updateComment(int userId, int commentId, UpdateCommentRequest request) { + Comment comment = getComment(userId, commentId); + comment.update(request.content()); + + return UpdateCommentResponse.fromEntity(comment); + } + + private Comment getComment(int userId, int commentId){ + Comment comment = commentRepository.findById(commentId) + .orElseThrow(()-> new CommentNotFoundException(String.valueOf(commentId))); + + if(comment.getUser().getUserId() != userId){ + log.error("댓글 수정 작업 거부됨. 요청 유저 ID : {}", userId); + throw new AuthorizationDeniedException("댓글 수정에 대한 권한이 없습니다."); + } + + return comment; + } } diff --git a/src/main/java/com/codeit/todo/web/controller/CommentController.java b/src/main/java/com/codeit/todo/web/controller/CommentController.java index 5f26172..6267908 100644 --- a/src/main/java/com/codeit/todo/web/controller/CommentController.java +++ b/src/main/java/com/codeit/todo/web/controller/CommentController.java @@ -3,18 +3,17 @@ import com.codeit.todo.repository.CustomUserDetails; import com.codeit.todo.service.comment.CommentService; import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; +import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.Response; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor @@ -35,4 +34,18 @@ public Response createComment( int userId = customUserDetails.getUserId(); return Response.ok(commentService.saveComment(userId, request)); } + + @Operation(summary = "댓글 수정", description = "댓글 내용 수정 API") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "수정 성공") + }) + @PutMapping("{commentId}") + public Response updateComment( + @PathVariable int commentId, + @AuthenticationPrincipal CustomUserDetails customUserDetails, + @Valid @RequestBody UpdateCommentRequest request + ){ + int userId = customUserDetails.getUserId(); + return Response.ok(commentService.updateComment(userId, commentId, request)); + } } diff --git a/src/main/java/com/codeit/todo/web/dto/request/comment/UpdateCommentRequest.java b/src/main/java/com/codeit/todo/web/dto/request/comment/UpdateCommentRequest.java new file mode 100644 index 0000000..903457d --- /dev/null +++ b/src/main/java/com/codeit/todo/web/dto/request/comment/UpdateCommentRequest.java @@ -0,0 +1,10 @@ +package com.codeit.todo.web.dto.request.comment; + +import com.codeit.todo.domain.Comment; +import com.codeit.todo.domain.Complete; +import com.codeit.todo.domain.User; +import jakarta.validation.constraints.NotNull; + +import java.time.LocalDateTime; + +public record UpdateCommentRequest( @NotNull String content) {} diff --git a/src/main/java/com/codeit/todo/web/dto/response/comment/UpdateCommentResponse.java b/src/main/java/com/codeit/todo/web/dto/response/comment/UpdateCommentResponse.java new file mode 100644 index 0000000..4617bfd --- /dev/null +++ b/src/main/java/com/codeit/todo/web/dto/response/comment/UpdateCommentResponse.java @@ -0,0 +1,15 @@ +package com.codeit.todo.web.dto.response.comment; + +import com.codeit.todo.domain.Comment; +import lombok.Builder; + +@Builder +public record UpdateCommentResponse(int commentId) { + + public static UpdateCommentResponse fromEntity(Comment comment) { + return UpdateCommentResponse.builder() + .commentId(comment.getCommentId()) + .build(); + } + +} From 2760e4399062e1b219dd9e5c2dab08df9d6fe75d Mon Sep 17 00:00:00 2001 From: soheeparklee Date: Sat, 28 Dec 2024 01:00:45 +0100 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=EB=8C=93=EA=B8=80=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../todo/service/comment/CommentService.java | 3 +++ .../service/comment/impl/CommentServiceImpl.java | 13 +++++++++++-- .../todo/web/controller/CommentController.java | 14 ++++++++++++++ .../response/comment/DeleteCommentResponse.java | 15 +++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/codeit/todo/web/dto/response/comment/DeleteCommentResponse.java diff --git a/src/main/java/com/codeit/todo/service/comment/CommentService.java b/src/main/java/com/codeit/todo/service/comment/CommentService.java index 54399b0..120caeb 100644 --- a/src/main/java/com/codeit/todo/service/comment/CommentService.java +++ b/src/main/java/com/codeit/todo/service/comment/CommentService.java @@ -3,10 +3,13 @@ import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.DeleteCommentResponse; import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; public interface CommentService { CreateCommentResponse saveComment(int userId, CreateCommentRequest request); UpdateCommentResponse updateComment(int userId, int commentId, UpdateCommentRequest request); + + DeleteCommentResponse deleteComment(int userId, int commentId); } diff --git a/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java index 9e72d0e..2f12f02 100644 --- a/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java +++ b/src/main/java/com/codeit/todo/service/comment/impl/CommentServiceImpl.java @@ -14,6 +14,7 @@ import com.codeit.todo.web.dto.request.comment.CreateCommentRequest; import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.DeleteCommentResponse; import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -51,13 +52,21 @@ public UpdateCommentResponse updateComment(int userId, int commentId, UpdateComm return UpdateCommentResponse.fromEntity(comment); } + @Transactional + @Override + public DeleteCommentResponse deleteComment(int userId, int commentId) { + Comment comment = getComment(userId, commentId); + commentRepository.delete(comment); + return DeleteCommentResponse.from(commentId); + } + private Comment getComment(int userId, int commentId){ Comment comment = commentRepository.findById(commentId) .orElseThrow(()-> new CommentNotFoundException(String.valueOf(commentId))); if(comment.getUser().getUserId() != userId){ - log.error("댓글 수정 작업 거부됨. 요청 유저 ID : {}", userId); - throw new AuthorizationDeniedException("댓글 수정에 대한 권한이 없습니다."); + log.error("댓글 작업 거부됨. 요청 유저 ID : {}", userId); + throw new AuthorizationDeniedException("댓글 작업에 대한 권한이 없습니다."); } return comment; diff --git a/src/main/java/com/codeit/todo/web/controller/CommentController.java b/src/main/java/com/codeit/todo/web/controller/CommentController.java index 6267908..c6f42f6 100644 --- a/src/main/java/com/codeit/todo/web/controller/CommentController.java +++ b/src/main/java/com/codeit/todo/web/controller/CommentController.java @@ -6,6 +6,7 @@ import com.codeit.todo.web.dto.request.comment.UpdateCommentRequest; import com.codeit.todo.web.dto.response.Response; import com.codeit.todo.web.dto.response.comment.CreateCommentResponse; +import com.codeit.todo.web.dto.response.comment.DeleteCommentResponse; import com.codeit.todo.web.dto.response.comment.UpdateCommentResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -48,4 +49,17 @@ public Response updateComment( int userId = customUserDetails.getUserId(); return Response.ok(commentService.updateComment(userId, commentId, request)); } + + @Operation(summary = "댓글 삭제", description = "댓글 삭제 API") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "삭제 성공") + }) + @DeleteMapping("{commentId}") + public Response deleteComment( + @PathVariable int commentId, + @AuthenticationPrincipal CustomUserDetails customUserDetails + ){ + int userId = customUserDetails.getUserId(); + return Response.ok(commentService.deleteComment(userId, commentId)); + } } diff --git a/src/main/java/com/codeit/todo/web/dto/response/comment/DeleteCommentResponse.java b/src/main/java/com/codeit/todo/web/dto/response/comment/DeleteCommentResponse.java new file mode 100644 index 0000000..12dae5f --- /dev/null +++ b/src/main/java/com/codeit/todo/web/dto/response/comment/DeleteCommentResponse.java @@ -0,0 +1,15 @@ +package com.codeit.todo.web.dto.response.comment; + +import com.codeit.todo.domain.Comment; +import lombok.Builder; + +@Builder +public record DeleteCommentResponse(int commentId) { + + public static DeleteCommentResponse from(int commentId) { + return DeleteCommentResponse.builder() + .commentId(commentId) + .build(); + } + +}