From 841c02b49b223aa1f0fd120357fd2bef4cfa56db Mon Sep 17 00:00:00 2001 From: gdakate Date: Wed, 3 Aug 2022 22:28:27 +0900 Subject: [PATCH] feat:> MypageComment api #19 --- .../backend/domain/comment/QComment.java | 8 +++---- .../controller/MypageCommentController.java | 19 +++++++++++++++++ .../dto/MypageCommentResponseDto.java | 13 ++++++++++++ .../backend/domain/comment/Comment.java | 12 +++++++++-- .../domain/comment/CommentRepository.java | 3 +++ .../backend/service/MypageCommentService.java | 21 +++++++++++++++++++ 6 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/alevel/backend/controller/MypageCommentController.java create mode 100644 src/main/java/com/alevel/backend/controller/dto/MypageCommentResponseDto.java create mode 100644 src/main/java/com/alevel/backend/service/MypageCommentService.java diff --git a/src/main/generated/com/alevel/backend/domain/comment/QComment.java b/src/main/generated/com/alevel/backend/domain/comment/QComment.java index 2d0f7db..2b88765 100644 --- a/src/main/generated/com/alevel/backend/domain/comment/QComment.java +++ b/src/main/generated/com/alevel/backend/domain/comment/QComment.java @@ -26,9 +26,9 @@ public class QComment extends EntityPathBase { public final NumberPath id = createNumber("id", Long.class); - public final com.alevel.backend.domain.post.QPost postId; + public final com.alevel.backend.domain.post.QPost post; - public final com.alevel.backend.domain.user.QUser userId; + public final com.alevel.backend.domain.user.QUser user; public QComment(String variable) { this(Comment.class, forVariable(variable), INITS); @@ -48,8 +48,8 @@ public QComment(PathMetadata metadata, PathInits inits) { public QComment(Class type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); - this.postId = inits.isInitialized("postId") ? new com.alevel.backend.domain.post.QPost(forProperty("postId"), inits.get("postId")) : null; - this.userId = inits.isInitialized("userId") ? new com.alevel.backend.domain.user.QUser(forProperty("userId")) : null; + this.post = inits.isInitialized("post") ? new com.alevel.backend.domain.post.QPost(forProperty("post"), inits.get("post")) : null; + this.user = inits.isInitialized("user") ? new com.alevel.backend.domain.user.QUser(forProperty("user")) : null; } } diff --git a/src/main/java/com/alevel/backend/controller/MypageCommentController.java b/src/main/java/com/alevel/backend/controller/MypageCommentController.java new file mode 100644 index 0000000..b9de912 --- /dev/null +++ b/src/main/java/com/alevel/backend/controller/MypageCommentController.java @@ -0,0 +1,19 @@ +package com.alevel.backend.controller; + +import com.alevel.backend.controller.dto.MypageCommentResponseDto; +import com.alevel.backend.service.MypageCommentService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +@RequiredArgsConstructor +@RestController +public class MypageCommentController { + private final MypageCommentService mypageCommentService; + + @GetMapping("/user/{id}/comment") + public MypageCommentResponseDto findByUserId(@PathVariable Long id){ + return mypageCommentService.findByUserId(id); + } +} diff --git a/src/main/java/com/alevel/backend/controller/dto/MypageCommentResponseDto.java b/src/main/java/com/alevel/backend/controller/dto/MypageCommentResponseDto.java new file mode 100644 index 0000000..180fcff --- /dev/null +++ b/src/main/java/com/alevel/backend/controller/dto/MypageCommentResponseDto.java @@ -0,0 +1,13 @@ +package com.alevel.backend.controller.dto; + +import com.alevel.backend.domain.comment.Comment; +import lombok.Getter; + +@Getter +public class MypageCommentResponseDto { + private String content; + + public MypageCommentResponseDto(Comment entity){ + this.content=entity.getContent(); + } +} diff --git a/src/main/java/com/alevel/backend/domain/comment/Comment.java b/src/main/java/com/alevel/backend/domain/comment/Comment.java index 7caa677..68a1d15 100644 --- a/src/main/java/com/alevel/backend/domain/comment/Comment.java +++ b/src/main/java/com/alevel/backend/domain/comment/Comment.java @@ -3,6 +3,7 @@ import com.alevel.backend.domain.BaseTimeEntity; import com.alevel.backend.domain.post.Post; import com.alevel.backend.domain.user.User; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import org.hibernate.annotations.DynamicInsert; @@ -20,12 +21,19 @@ public class Comment extends BaseTimeEntity { @ManyToOne(targetEntity = User.class) @JoinColumn(name = "user_id") - private Long userId; + private User user; @ManyToOne(targetEntity = Post.class) @JoinColumn(name = "post_id") - private Long postId; + private Post post; @Column(columnDefinition = "TEXT") private String content; + +// @Builder +// public Comment(User user, Post post,String content){ +// this.user=user; +// this.post=post; +// this.content=content; +// } } diff --git a/src/main/java/com/alevel/backend/domain/comment/CommentRepository.java b/src/main/java/com/alevel/backend/domain/comment/CommentRepository.java index a3de28a..263d09e 100644 --- a/src/main/java/com/alevel/backend/domain/comment/CommentRepository.java +++ b/src/main/java/com/alevel/backend/domain/comment/CommentRepository.java @@ -2,8 +2,11 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface CommentRepository extends JpaRepository { + Optional findByUserId(Long id); } diff --git a/src/main/java/com/alevel/backend/service/MypageCommentService.java b/src/main/java/com/alevel/backend/service/MypageCommentService.java new file mode 100644 index 0000000..c6a9e68 --- /dev/null +++ b/src/main/java/com/alevel/backend/service/MypageCommentService.java @@ -0,0 +1,21 @@ +package com.alevel.backend.service; + +import com.alevel.backend.controller.dto.MypageCommentResponseDto; +import com.alevel.backend.domain.comment.Comment; +import com.alevel.backend.domain.comment.CommentRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@RequiredArgsConstructor +@Service +public class MypageCommentService { + private final CommentRepository commentRepository; + + @Transactional + public MypageCommentResponseDto findByUserId(Long id){ + Comment entity = commentRepository.findByUserId(id).orElseThrow(() + -> new IllegalArgumentException("작성한 댓글이 없습니다. id="+id)); + return new MypageCommentResponseDto(entity); + } +}