Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/SMWU-POCHAK/POCHAK-Server
Browse files Browse the repository at this point in the history
…into develop
  • Loading branch information
5jisoo committed Jul 5, 2024
2 parents c374a76 + 2014adb commit 0422743
Show file tree
Hide file tree
Showing 13 changed files with 102 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@
@NoArgsConstructor
@AllArgsConstructor
public class BlockElement {
private Long memberId;
private String profileImage;
private String handle;
private String name;

@Builder(builderMethodName = "from")
public BlockElement(final Block block) {
Member blockedMember = block.getBlockedMember();
this.memberId = blockedMember.getId();
this.profileImage = blockedMember.getProfileImage();
this.handle = blockedMember.getHandle();
this.name = blockedMember.getName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@AllArgsConstructor
public class CommentElement {
private Long commentId;
private Long memberId;
private String profileImage;
private String handle;
private LocalDateTime createdDate;
Expand All @@ -23,6 +24,7 @@ public class CommentElement {
public CommentElement(final Comment comment) {
final Member member = comment.getMember();
this.commentId = comment.getId();
this.memberId = member.getId();
this.profileImage = member.getProfileImage();
this.handle = member.getHandle();
this.createdDate = comment.getCreatedDate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@AllArgsConstructor
public class ParentCommentElement {
private Long commentId;
private Long memberId;
private String profileImage;
private String handle;
private LocalDateTime createdDate;
Expand All @@ -43,6 +44,7 @@ public ParentCommentElement(
) {
final Member member = parentComment.getMember();
this.commentId = parentComment.getId();
this.memberId = member.getId();
this.profileImage = member.getProfileImage();
this.handle = member.getHandle();
this.createdDate = parentComment.getCreatedDate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ Optional<LikeEntity> findByLikeMemberAndLikedPost(

@Query("select " +
"new com.apps.pochak.like.dto.response.LikeElement(" +
" m.id, " +
" m.handle, " +
" m.profileImage, " +
" m.name, " +
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
package com.apps.pochak.like.dto.response;

import com.apps.pochak.member.domain.Member;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class LikeElement {

private Long memberId;
private String handle;
private String profileImage;
private String name;
private Boolean follow;

public LikeElement(final Member member, final Boolean follow) {
this.handle = member.getHandle();
this.profileImage = member.getProfileImage();
this.name = member.getName();
this.follow = follow;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
public class JwtProvider {
public static final String EMPTY_SUBJECT = "";
private final MemberRepository memberRepository;
private final long accessTokenExpirationTime = 1000L * 60 * 5; // 5M
private final long accessTokenExpirationTime = 1000L * 60 * 30; // 30M
private final long refreshTokenExpirationTime = 1000L * 60 * 60 * 24 * 30; // 1M
private Key key;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.apps.pochak.member.domain.Member;
import com.apps.pochak.post.domain.Post;
import com.apps.pochak.tag.domain.Tag;
import com.apps.pochak.tag.dto.response.TagElement;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -17,9 +18,10 @@
@NoArgsConstructor
@AllArgsConstructor
public class PostDetailResponse {
private Long ownerId;
private String ownerHandle;
private String ownerProfileImage;
private List<String> taggedMemberHandle;
private List<TagElement> tagList;
private Boolean isFollow;
private String postImage;
private Boolean isLike;
Expand All @@ -37,16 +39,20 @@ public PostDetailResponse(
final Comment recentComment
) {
final Member owner = post.getOwner();
this.ownerId = owner.getId();
this.ownerHandle = owner.getHandle();
this.ownerProfileImage = owner.getProfileImage();
this.taggedMemberHandle = tagList.stream().map(
tag -> tag.getMember().getHandle()

this.tagList = tagList.stream().map(
TagElement::new
).collect(Collectors.toList());

this.isFollow = isFollow;
this.postImage = post.getPostImage();
this.isLike = isLike;
this.likeCount = likeCount;
this.caption = post.getCaption();

if (recentComment != null) {
this.recentComment = CommentElement.from()
.comment(recentComment)
Expand Down
25 changes: 14 additions & 11 deletions src/main/java/com/apps/pochak/post/service/PostService.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ public class PostService {
private final S3Service s3Service;
private final JwtProvider jwtProvider;

public static final int MAX_TAG_COUNT = 5;

@Transactional(readOnly = true)
public PostElements getHomeTab(Pageable pageable) {
final Member loginMember = jwtProvider.getLoginMember();
Expand All @@ -59,7 +61,7 @@ public PostDetailResponse getPostDetail(final Long postId) {
final Member loginMember = jwtProvider.getLoginMember();
final Post post = postRepository.findPostById(postId, loginMember);
final List<Tag> tagList = tagRepository.findTagsByPost(post);
if (post.isPrivate() && !isAccessAuthorized(post, tagList, loginMember)) {
if (post.isPrivate()) {
throw new GeneralException(PRIVATE_POST);
}
final Boolean isFollow = post.isOwner(loginMember) ?
Expand All @@ -78,17 +80,12 @@ public PostDetailResponse getPostDetail(final Long postId) {
.build();
}

private boolean isAccessAuthorized(final Post post,
final List<Tag> tagList,
final Member loginMember) {
final List<String> taggedMemberHandleList = tagList.stream()
.map(
tag -> tag.getMember().getHandle()
).collect(Collectors.toList());
return post.isOwner(loginMember) || taggedMemberHandleList.contains(loginMember.getHandle());
}

public void savePost(final PostUploadRequest request) {
int requestTagCount = request.getTaggedMemberHandleList().size();
if (requestTagCount > MAX_TAG_COUNT) {
throw new GeneralException(EXCEED_TAG_LIMIT);
}

final Member loginMember = jwtProvider.getLoginMember();
if (request.getTaggedMemberHandleList().contains(loginMember.getHandle())) {
throw new GeneralException(TAGGED_ONESELF);
Expand All @@ -101,6 +98,12 @@ public void savePost(final PostUploadRequest request) {
final List<String> taggedMemberHandles = request.getTaggedMemberHandleList();
final List<Member> taggedMemberList = memberRepository.findMemberByHandleList(taggedMemberHandles, loginMember);

int foundTagSize = taggedMemberList.size();
if (requestTagCount != foundTagSize) {
s3Service.deleteFileFromS3(image);
throw new GeneralException(INVALID_TAG_INFO);
}

final List<Tag> tagList = saveTags(taggedMemberList, post);
saveTagApprovalAlarms(tagList);
}
Expand Down
12 changes: 4 additions & 8 deletions src/main/java/com/apps/pochak/tag/dto/response/TagElement.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,23 @@

import com.apps.pochak.member.domain.Member;
import com.apps.pochak.tag.domain.Tag;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TagElement {
private Long memberId;
private String profileImage;
private String handle;
private String name;

@Builder
public TagElement(Long memberId, String handle, String name) {
this.memberId = memberId;
this.handle = handle;
this.name = name;
}

public TagElement(Tag tag) {
Member member = tag.getMember();
this.memberId = member.getId();
this.profileImage = member.getProfileImage();
this.handle = member.getHandle();
this.name = member.getName();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ void getPreviewPostTest() throws Exception {
fieldWithPath("result.ownerProfileImage").type(STRING).description("포착한 유저의 프로필 이미지"),
fieldWithPath("result.tagList").type(ARRAY).description("태그된 리스트"),
fieldWithPath("result.tagList[].memberId").type(NUMBER).description("태그된 리스트 | 유저 아이디"),
fieldWithPath("result.tagList[].profileImage").type(STRING).description("태그된 리스트 | 유저 프로필 이미지"),
fieldWithPath("result.tagList[].handle").type(STRING).description("태그된 리스트 | 유저 핸들"),
fieldWithPath("result.tagList[].name").type(STRING).description("태그된 리스트 | 유저 이름"),
fieldWithPath("result.postImage").type(STRING).description("게시물 미리보기 이미지")
Expand Down
Loading

0 comments on commit 0422743

Please sign in to comment.