Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.back.domain.post.comment.controller;

import com.back.domain.member.member.entity.Member;
import com.back.domain.post.comment.dto.CommentCreateRequest;
import com.back.domain.post.comment.service.PostCommentService;
import com.back.global.rq.Rq;
import com.back.global.rsData.RsData;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/post/comment")
@RequiredArgsConstructor
public class PostCommentController {
@Autowired
private Rq rq;
@Autowired
private PostCommentService postCommentService;

@Operation(summary = "댓글 생성")
@PostMapping("/{post_id}")
public RsData<Void> createComment(@PathVariable Long post_id,
@Valid @RequestBody CommentCreateRequest commentCreateRequest
) {
Member member = rq.getActor();
postCommentService.createComment(member, post_id, commentCreateRequest);

return new RsData<>("200", "댓글 작성 완료" , null);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.back.domain.post.comment.dto;

import lombok.Data;

@Data
public class CommentCreateRequest {
private Long postId;
private String role;
private String comment;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.back.domain.post.comment.entity;

import com.back.domain.member.member.entity.Member;
import com.back.domain.post.post.entity.Post;
import com.back.global.jpa.BaseEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import lombok.Getter;
import lombok.Setter;

@Entity
@Getter
@Setter
public class PostComment extends BaseEntity {
@ManyToOne(fetch = FetchType.LAZY)
private Post post;

private String content;

@ManyToOne(fetch = FetchType.LAZY)
private Member member;

private String role;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.back.domain.post.comment.repository;

import com.back.domain.post.comment.entity.PostComment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface PostCommentRepository extends JpaRepository<PostComment, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.back.domain.post.comment.service;

import com.back.domain.member.member.entity.Member;
import com.back.domain.post.comment.dto.CommentCreateRequest;
import com.back.domain.post.comment.entity.PostComment;
import com.back.domain.post.comment.repository.PostCommentRepository;
import com.back.domain.post.post.entity.Post;
import com.back.domain.post.post.repository.PostRepository;
import com.back.global.exception.ServiceException;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class PostCommentService {
private final PostRepository postRepository;
private final PostCommentRepository postCommentRepository;

@Transactional
public void createComment(Member member, Long postId, CommentCreateRequest commentCreateRequest) {
Post post = postRepository.findById(postId).orElseThrow(() -> new ServiceException("400", "해당 Id의 게시글이 없습니다."));

PostComment postComment = new PostComment();

postComment.setContent(commentCreateRequest.getComment());
postComment.setMember(member);
postComment.setRole(String.valueOf(member.getRole()));

post.addComment(postComment);

postCommentRepository.save(postComment);

}
}

This file was deleted.

12 changes: 0 additions & 12 deletions back/src/main/java/com/back/domain/post/dto/PostCreateRequest.java

This file was deleted.

33 changes: 0 additions & 33 deletions back/src/main/java/com/back/domain/post/entity/Post.java

This file was deleted.

11 changes: 0 additions & 11 deletions back/src/main/java/com/back/domain/post/entity/PracticePost.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package com.back.domain.post.post.controller;

import com.back.domain.member.member.entity.Member;
import com.back.domain.post.post.dto.*;
import com.back.domain.post.post.entity.Post;
import com.back.domain.post.post.service.PostService;
import com.back.global.auth.CurrentUser;
import com.back.global.rq.Rq;
import com.back.global.rsData.RsData;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("post/infor")
@RequiredArgsConstructor
public class InformationPostController {
private final PostService postService;
private final Rq rq;


@Operation(summary = "게시글 생성")
@PostMapping
public RsData<PostCreateResponse> createPost(
@Valid @RequestBody PostCreateRequest postCreateRequest
) {
Member member = rq.getActor();
Post post = postService.createPost(postCreateRequest, member);
PostCreateResponse postCreateResponse = PostCreateResponse.from(post);

return new RsData<>("200", "게시글이 성공적으로 생성되었습니다.", postCreateResponse);
}

@Operation(summary = "게시글 다건 조회")
@GetMapping
public RsData<List<PostAllResponse>> getAllPost() {
List<PostAllResponse> postAllResponse = postService.getAllPostResponse();


return new RsData<>("200", "게시글 다건 조회 성공", postAllResponse);
}

@Operation(summary = "게시글 단건 조회")
@GetMapping("/{post_id}")
public RsData<PostSingleResponse> getSinglePost(@PathVariable long post_id) {
Post post = postService.findById(post_id);

PostSingleResponse postSingleResponse = new PostSingleResponse(post);

return new RsData<>("200", "게시글 단건 조회 성공", postSingleResponse);
}

@Operation(summary = "게시글 삭제")
@DeleteMapping("/{post_id}")
public RsData<Void> removePost(@PathVariable long post_id) {
Member member = rq.getActor();

postService.removePost(post_id, member);

return new RsData<>("200", "게시글 삭제 성공", null);
}

@Operation(summary = "게시글 수정")
@PutMapping("/{post_id}")
public RsData<Void> updatePost(@PathVariable long post_id
,@CurrentUser Member member
,@Valid @RequestBody PostCreateRequest postCreateRequest) {

postService.updatePost(post_id, member, postCreateRequest);

return new RsData<>("200", "게시글 수정 성공", null);
}

@Operation(summary = "게시글 좋아요 + ")
@PostMapping("/{post_id}/liked")
public RsData<Void> likePost(@PathVariable long post_id) {
postService.likePost(post_id);

return new RsData<>("200", "게시글 좋아요 성공", null);
}

@Operation(summary = "게시글 좋아요 (Show)")
@GetMapping("/{post_id}/liked")
public RsData<PostLikedResponse> getlike(@PathVariable long post_id) {
int likeCount = postService.showLikeCount(post_id);
PostLikedResponse postLikedResponse = new PostLikedResponse(likeCount);

return new RsData<>("200", "게시글 좋아요 조회 성공", postLikedResponse);
}

@Operation(summary = "게시글 싫어요")
@PostMapping("/{post_id}/disliked")
public RsData<PostLikedResponse> disLikePost(@PathVariable long post_id) {
postService.disLikePost(post_id);

return new RsData<>("200", "게시글 싫어요 성공", null);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.back.domain.post.dto;
package com.back.domain.post.post.dto;

import com.back.domain.post.entity.Post;
import com.back.domain.post.post.entity.Post;
import lombok.Data;

import java.time.LocalDateTime;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.back.domain.post.post.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.Data;

@Data
public class PostCreateRequest {
private Long memberId;
private String postType;
@NotBlank(message = "제목은 null 혹은 공백일 수 없습니다.")
private String title;
@NotBlank(message = "제목은 null 혹은 공백일 수 없습니다.")
private String content;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.back.domain.post.dto;
package com.back.domain.post.post.dto;

import com.back.domain.post.entity.Post;
import com.back.domain.post.post.entity.Post;
import lombok.Data;

@Data
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.back.domain.post.post.dto;

public class PostLikedResponse {
int liked;

public PostLikedResponse(int liked) {
this.liked= liked;
}
}
Loading