Skip to content

Commit

Permalink
Merge pull request #169 from Pre-folio/refactor/community
Browse files Browse the repository at this point in the history
[refactor] community 구조 리펙토링 및 세부 내용 리펙토링
  • Loading branch information
chaeshee0908 authored Jul 19, 2023
2 parents f6eb960 + 7598233 commit be7ac69
Show file tree
Hide file tree
Showing 38 changed files with 716 additions and 342 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
import prefolio.prefolioserver.domain.post.domain.SortBy;
Expand All @@ -18,7 +19,7 @@
import prefolio.prefolioserver.domain.post.service.PostService;
import prefolio.prefolioserver.domain.user.service.UserDetailsImpl;


@Slf4j
@RestController
@SecurityRequirement(name = "Bearer Authentication")
@RequestMapping("/posts")
Expand Down Expand Up @@ -50,7 +51,8 @@ public CommonResponseDTO<MainPostResponseDTO> getAllPosts(
@RequestParam(name = "actTagList", required = false) String actTagList,
@RequestParam(name = "pageNum") Integer pageNum,
@RequestParam(name = "limit") Integer limit
) {
) {
log.info("메인피드 게시물 조회");
return CommonResponseDTO.onSuccess(
"메인피드 게시물 조회 성공",
postService.getAllPosts(authUser, sortBy, partTagList, actTagList, pageNum, limit)
Expand Down Expand Up @@ -82,6 +84,7 @@ public CommonResponseDTO<MainPostResponseDTO> getSearchPosts(
@RequestParam(name = "limit") Integer limit,
@RequestParam(name = "searchWord") String searchWord
) {
log.info("검색 결과 조회");
return CommonResponseDTO.onSuccess(
"검색 결과 게시물 조회 성공",
postService.getSearchPosts(authUser, sortBy, partTagList, actTagList, pageNum, limit, searchWord));
Expand All @@ -107,6 +110,7 @@ public CommonResponseDTO<PostIdResponseDTO> addPost(
@AuthenticationPrincipal UserDetailsImpl authUser,
@RequestBody AddPostRequestDTO addPostRequest
) {
log.info("글 작성");
return CommonResponseDTO.onSuccess("글 생성 성공", postService.savePost(authUser, addPostRequest));
}

Expand All @@ -131,6 +135,7 @@ public CommonResponseDTO<PostIdResponseDTO> updatePost(
@PathVariable Long postId,
@RequestBody AddPostRequestDTO addPostRequest
) {
log.info("글 수정");
return CommonResponseDTO.onSuccess("글 수정 성공", postService.updatePost(authUser, postId, addPostRequest));
}
@Operation(
Expand All @@ -153,6 +158,7 @@ public CommonResponseDTO<PostIdResponseDTO> deletePost(
@AuthenticationPrincipal UserDetailsImpl authUser,
@PathVariable Long postId
) {
log.info("글 삭제");
return CommonResponseDTO.onSuccess("글 삭제 성공", postService.deletePost(authUser, postId));
}

Expand All @@ -176,6 +182,7 @@ public CommonResponseDTO<GetPostResponseDTO> getPost(
@AuthenticationPrincipal UserDetailsImpl authUser,
@PathVariable(name = "postId") Long postId
) {
log.info("게시글 조회");
return CommonResponseDTO.onSuccess("게시글 조회 성공", postService.findPostById(authUser, postId));
}

Expand All @@ -201,7 +208,9 @@ public CommonResponseDTO<CardPostResponseDTO> findPostByUserId(
@RequestParam(name = "partTagList", required = false) String partTagList,
@RequestParam(name = "actTagList", required = false) String actTagList,
@RequestParam(name = "pageNum") Integer pageNum,
@RequestParam(name = "limit") Integer limit) {
@RequestParam(name = "limit") Integer limit
) {
log.info("유저 게시글 모두 조회");
return CommonResponseDTO.onSuccess("SUCCESS", postService.findPostByUserId(authUser, userId, partTagList, actTagList, pageNum, limit));
}

Expand All @@ -226,7 +235,9 @@ public CommonResponseDTO<CardPostResponseDTO> findScrapByUserId(
@RequestParam(name = "partTagList", required = false) String partTagList,
@RequestParam(name = "actTagList", required = false) String actTagList,
@RequestParam(name = "pageNum") Integer pageNum,
@RequestParam(name = "limit") Integer limit) {
@RequestParam(name = "limit") Integer limit
) {
log.info("스크랩한 게시글 모두 조회");
return CommonResponseDTO.onSuccess("SUCCESS", postService.findMyScrap(authUser, partTagList, actTagList, pageNum, limit));
}

Expand All @@ -249,6 +260,7 @@ public CommonResponseDTO<ClickLikeResponseDTO> clickLike(
@AuthenticationPrincipal UserDetailsImpl authUser,
@PathVariable(name = "postId") Long postId
) {
log.info("좋아요 버튼 누르기");
return CommonResponseDTO.onSuccess("SUCCESS", postService.clickLike(authUser, postId));
}

Expand All @@ -272,6 +284,7 @@ public CommonResponseDTO<ClickScrapResponseDTO> clickScrap(
@AuthenticationPrincipal UserDetailsImpl authUser,
@PathVariable(name = "postId") Long postId
) {
log.info("스크랩 버튼 누르기");
return CommonResponseDTO.onSuccess("SUCCESS", postService.clickScrap(authUser, postId));
}

Expand All @@ -295,6 +308,7 @@ public CommonResponseDTO<CommentResponseDTO> getComments(
@RequestParam(name = "pageNum") Integer pageNum,
@RequestParam(name = "limit") Integer limit
) {
log.info("댓글 조회");
return CommonResponseDTO.onSuccess(
"댓글 조회 성공",
commentService.getComments(authUser, pageNum, limit)
Expand All @@ -321,6 +335,7 @@ public CommonResponseDTO<CommentIdResponseDTO> addPost(
@AuthenticationPrincipal UserDetailsImpl authUser,
@RequestBody AddCommentRequestDTO addCommentRequest
) {
log.info("댓글 작성");
return CommonResponseDTO.onSuccess("댓글 생성 성공", commentService.saveComment(authUser, addCommentRequest));
}

Expand All @@ -345,6 +360,7 @@ public CommonResponseDTO<CommentIdResponseDTO> updateComment(
@PathVariable Long commentId,
@RequestBody AddCommentRequestDTO addCommentRequest
) {
log.info("댓글 수정");
return CommonResponseDTO.onSuccess("댓글 수정 성공", commentService.updateComment(authUser, commentId, addCommentRequest));
}
@Operation(
Expand All @@ -367,6 +383,7 @@ public CommonResponseDTO<CommentIdResponseDTO> deleteComment(
@AuthenticationPrincipal UserDetailsImpl authUser,
@PathVariable Long commentId
) {
log.info("댓글 삭제");
return CommonResponseDTO.onSuccess("댓글 삭제 성공", commentService.deleteComment(authUser, commentId));
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package prefolio.prefolioserver.domain.post.domain;

import lombok.Getter;

@Getter
public enum ActTag {
SOCIETY("society"),
PROJECT("project"),
INTERN("intern");

private String actTag;
private final String actTag;

ActTag(String actTag) {
this.actTag = actTag;
}

public String getActTag() {
return this.actTag;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

@Entity
@Getter
@Setter
@Table(name = "Comments")
@NoArgsConstructor
@Where(clause = "deleted_at IS NULL")
Expand Down Expand Up @@ -52,7 +51,7 @@ public class Comment {
private Date deletedAt;

@Builder
public Comment(
private Comment(
Long id,
User user,
Post post,
Expand All @@ -69,6 +68,16 @@ public Comment(
this.updatedAt = updatedAt;
this.deletedAt = deletedAt;
}

public static Comment of(User user, AddCommentRequestDTO addCommentRequestDTO, Date createdAt) {
return Comment.builder()
.user(user)
.post(addCommentRequestDTO.getPost())
.contents(addCommentRequestDTO.getContents())
.createdAt(createdAt)
.build();
}

public void update(AddCommentRequestDTO addCommentRequestDTO) {
this.contents = addCommentRequestDTO.getContents();
this.updatedAt = new Date();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,17 @@ public class Like {
private Post post;

@Builder
public Like(Long id, User user, Post post) {
private Like(Long id, User user, Post post) {
this.id = id;
this.user = user;
this.post = post;
}

public static Like of(Long id, User user, Post post) {
return Like.builder()
.id(id)
.user(user)
.post(post)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package prefolio.prefolioserver.domain.post.domain;

import lombok.Getter;

@Getter
public enum PartTag {
PLAN("plan"),
DEV("dev"),
DESIGN("design");

private String partTag;
private final String partTag;

PartTag(String partTag) {
this.partTag = partTag;
}

public String getPartTag() {
return this.partTag;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package prefolio.prefolioserver.domain.post.domain;

import lombok.Getter;

@Getter
public enum Path {
PROFILE("profile"),
IMAGE("image"),
Expand All @@ -10,8 +13,4 @@ public enum Path {
Path(String path) {
this.path = path;
}

public String getPath() {
return this.path;
}
}
43 changes: 39 additions & 4 deletions src/main/java/prefolio/prefolioserver/domain/post/domain/Post.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import lombok.Setter;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import prefolio.prefolioserver.domain.post.dto.PostDTO;
import prefolio.prefolioserver.domain.post.dto.request.AddPostRequestDTO;
import prefolio.prefolioserver.domain.user.domain.User;

Expand All @@ -18,7 +19,6 @@

@Entity
@Getter
@Setter
@Table(name = "Posts")
@NoArgsConstructor
@Where(clause = "deleted_at IS NULL")
Expand Down Expand Up @@ -94,8 +94,7 @@ public class Post {
private Date deletedAt;

@Builder
public Post(
Long id,
private Post(
User user,
String thumbnail,
String title,
Expand All @@ -114,7 +113,6 @@ public Post(
Date updatedAt,
Date deletedAt
) {
this.id = id;
this.user = user;
this.thumbnail = thumbnail;
this.title = title;
Expand All @@ -133,6 +131,28 @@ public Post(
this.updatedAt = updatedAt;
this.deletedAt = deletedAt;
}

// 정적 팩토리 메소드
public static Post of(User user, AddPostRequestDTO postDTO, Integer hits, Integer likes, Integer scraps, Date createdAt) {
return Post.builder()
.user(user)
.thumbnail(postDTO.getThumbnail())
.title(postDTO.getTitle())
.startDate(postDTO.getStartDate())
.endDate(postDTO.getEndDate())
.contribution(postDTO.getContribution())
.task(postDTO.getTask())
.tools(postDTO.getTools())
.partTag(postDTO.getPartTag())
.actTag(postDTO.getActTag())
.contents(postDTO.getContents())
.hits(hits)
.likes(likes)
.scraps(scraps)
.createdAt(createdAt)
.build();
}

public void update(AddPostRequestDTO addPostRequestDTO) {
this.thumbnail = addPostRequestDTO.getThumbnail();
this.title = addPostRequestDTO.getTitle();
Expand All @@ -146,4 +166,19 @@ public void update(AddPostRequestDTO addPostRequestDTO) {
this.contents = addPostRequestDTO.getContents();
this.updatedAt = new Date();
}

// 조회수 업데이트
public void updateHits(Integer hits) {
this.hits = hits;
}

// 좋아요 업데이트
public void updateLikes(Integer likes) {
this.likes = likes;
}

// 스크랩수 업데이트
public void updateScraps(Integer scraps) {
this.scraps = scraps;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,17 @@ public class Scrap {
private Post post;

@Builder
public Scrap(Long id, User user, Post post) {
private Scrap(Long id, User user, Post post) {
this.id = id;
this.user = user;
this.post = post;
}

public static Scrap of(Long id, User user, Post post) {
return Scrap.builder()
.id(id)
.user(user)
.post(post)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package prefolio.prefolioserver.domain.post.domain;

import lombok.Getter;

@Getter
public enum SortBy {
CREATED_AT("createdAt"),
LIKES("likes"),
HITS("hits");

private String sortBy;
private final String sortBy;

SortBy(String sortBy) {
this.sortBy = sortBy;
}

public String getSortBy() {
return this.sortBy;
}
}
Loading

0 comments on commit be7ac69

Please sign in to comment.