Skip to content

Commit 978537a

Browse files
authored
Feat#24 게시글 CRUD 기능 구현 완료 (#35)
* [feat] 게시글 다건 조회 && 단건조회 TC 작성 && Init 데이터 설정 * [feat] 게시글 생성 유효성관련 테스트코드 추가 * [feat] 타입 별 저장 위치 분류 * [feat] Post 엔티티 관련 리팩토링 * 게시글 삭제 기능 구현 완료 * 게시글 좋아요 싫어요 기능 구현 완료 * 게시글 댓글 생성 기능 구현 * 게시글 CRUD 기능 구현
1 parent a0cc1d6 commit 978537a

30 files changed

+961
-393
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.back.domain.post.comment.controller;
2+
3+
import com.back.domain.member.member.entity.Member;
4+
import com.back.domain.post.comment.dto.CommentCreateRequest;
5+
import com.back.domain.post.comment.service.PostCommentService;
6+
import com.back.global.rq.Rq;
7+
import com.back.global.rsData.RsData;
8+
import io.swagger.v3.oas.annotations.Operation;
9+
import jakarta.validation.Valid;
10+
import lombok.RequiredArgsConstructor;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.web.bind.annotation.*;
13+
14+
@RestController
15+
@RequestMapping("/post/comment")
16+
@RequiredArgsConstructor
17+
public class PostCommentController {
18+
@Autowired
19+
private Rq rq;
20+
@Autowired
21+
private PostCommentService postCommentService;
22+
23+
@Operation(summary = "댓글 생성")
24+
@PostMapping("/{post_id}")
25+
public RsData<Void> createComment(@PathVariable Long post_id,
26+
@Valid @RequestBody CommentCreateRequest commentCreateRequest
27+
) {
28+
Member member = rq.getActor();
29+
postCommentService.createComment(member, post_id, commentCreateRequest);
30+
31+
return new RsData<>("200", "댓글 작성 완료" , null);
32+
}
33+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.back.domain.post.comment.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class CommentCreateRequest {
7+
private Long postId;
8+
private String role;
9+
private String comment;
10+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.back.domain.post.comment.entity;
2+
3+
import com.back.domain.member.member.entity.Member;
4+
import com.back.domain.post.post.entity.Post;
5+
import com.back.global.jpa.BaseEntity;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.FetchType;
8+
import jakarta.persistence.ManyToOne;
9+
import lombok.Getter;
10+
import lombok.Setter;
11+
12+
@Entity
13+
@Getter
14+
@Setter
15+
public class PostComment extends BaseEntity {
16+
@ManyToOne(fetch = FetchType.LAZY)
17+
private Post post;
18+
19+
private String content;
20+
21+
@ManyToOne(fetch = FetchType.LAZY)
22+
private Member member;
23+
24+
private String role;
25+
26+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.back.domain.post.comment.repository;
2+
3+
import com.back.domain.post.comment.entity.PostComment;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface PostCommentRepository extends JpaRepository<PostComment, Long> {
9+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.back.domain.post.comment.service;
2+
3+
import com.back.domain.member.member.entity.Member;
4+
import com.back.domain.post.comment.dto.CommentCreateRequest;
5+
import com.back.domain.post.comment.entity.PostComment;
6+
import com.back.domain.post.comment.repository.PostCommentRepository;
7+
import com.back.domain.post.post.entity.Post;
8+
import com.back.domain.post.post.repository.PostRepository;
9+
import com.back.global.exception.ServiceException;
10+
import jakarta.transaction.Transactional;
11+
import lombok.RequiredArgsConstructor;
12+
import org.springframework.stereotype.Service;
13+
14+
@Service
15+
@RequiredArgsConstructor
16+
public class PostCommentService {
17+
private final PostRepository postRepository;
18+
private final PostCommentRepository postCommentRepository;
19+
20+
@Transactional
21+
public void createComment(Member member, Long postId, CommentCreateRequest commentCreateRequest) {
22+
Post post = postRepository.findById(postId).orElseThrow(() -> new ServiceException("400", "해당 Id의 게시글이 없습니다."));
23+
24+
PostComment postComment = new PostComment();
25+
26+
postComment.setContent(commentCreateRequest.getComment());
27+
postComment.setMember(member);
28+
postComment.setRole(String.valueOf(member.getRole()));
29+
30+
post.addComment(postComment);
31+
32+
postCommentRepository.save(postComment);
33+
34+
}
35+
}

back/src/main/java/com/back/domain/post/controller/InformationPostController.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

back/src/main/java/com/back/domain/post/dto/PostCreateRequest.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

back/src/main/java/com/back/domain/post/entity/Post.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

back/src/main/java/com/back/domain/post/entity/PracticePost.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

back/src/main/java/com/back/domain/post/entity/QuestionPost.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)