From 85393e21089c834be556b82131479c712a554be1 Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Thu, 25 Jul 2024 01:02:38 +0900 Subject: [PATCH 1/3] =?UTF-8?q?#434=20[feat]=20=EA=B6=8C=ED=95=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mile/post/service/PostService.java | 29 ++++++++++++++++--- .../service/dto/PostAuthenticateResponse.java | 11 +++++++ .../dto/WriterAuthenticateResponse.java | 11 ------- 3 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 module-domain/src/main/java/com/mile/post/service/dto/PostAuthenticateResponse.java delete mode 100644 module-domain/src/main/java/com/mile/post/service/dto/WriterAuthenticateResponse.java diff --git a/module-domain/src/main/java/com/mile/post/service/PostService.java b/module-domain/src/main/java/com/mile/post/service/PostService.java index 03247647..40be67a0 100644 --- a/module-domain/src/main/java/com/mile/post/service/PostService.java +++ b/module-domain/src/main/java/com/mile/post/service/PostService.java @@ -17,7 +17,7 @@ import com.mile.post.service.dto.PostPutRequest; import com.mile.post.service.dto.TemporaryPostCreateRequest; import com.mile.post.service.dto.TemporaryPostGetResponse; -import com.mile.post.service.dto.WriterAuthenticateResponse; +import com.mile.post.service.dto.PostAuthenticateResponse; import com.mile.topic.domain.Topic; import com.mile.topic.service.TopicRetriever; import com.mile.topic.service.TopicService; @@ -52,6 +52,11 @@ public class PostService { private static final boolean CURIOUS_FALSE = false; private static final boolean CURIOUS_TRUE = true; + private static final String ROLE_WRITER = "writer"; + private static final String ROLE_ANONYMOUS = "anonymous"; + private static final String ROLE_MEMBER = "member"; + private static final String ROLE_OWNER = "owner"; + @Transactional public void createCommentOnPost( @@ -119,12 +124,28 @@ public void updatePost( } - public WriterAuthenticateResponse getAuthenticateWriter( + public PostAuthenticateResponse getAuthenticateWriter( final Long postId, final Long userId ) { - return WriterAuthenticateResponse.of(postRetriever.existsPostByWriterWithPost(postId, - writerNameRetriever.getWriterNameByPostAndUserId(postRetriever.findById(postId), userId).getId())); + Post post = postRetriever.findById(postId); + Moim moim = post.getTopic().getMoim(); + WriterName postWriterName = post.getWriterName(); + + if (!writerNameRetriever.isUserInMoim(moim.getId(), userId)) { + return PostAuthenticateResponse.of(ROLE_ANONYMOUS); + } + + WriterName userWriterName = writerNameRetriever.findByMoimAndUser(moim.getId(), userId); // 유저 필명 + if (postWriterName.equals(userWriterName)) { + return PostAuthenticateResponse.of(ROLE_WRITER); + } + + if (moim.getOwner().equals(userWriterName)) { + return PostAuthenticateResponse.of(ROLE_OWNER); + } + + return PostAuthenticateResponse.of(ROLE_MEMBER); } @Transactional diff --git a/module-domain/src/main/java/com/mile/post/service/dto/PostAuthenticateResponse.java b/module-domain/src/main/java/com/mile/post/service/dto/PostAuthenticateResponse.java new file mode 100644 index 00000000..5013e6ea --- /dev/null +++ b/module-domain/src/main/java/com/mile/post/service/dto/PostAuthenticateResponse.java @@ -0,0 +1,11 @@ +package com.mile.post.service.dto; + +public record PostAuthenticateResponse( + String role +) { + public static PostAuthenticateResponse of( + final String role + ) { + return new PostAuthenticateResponse(role); + } +} diff --git a/module-domain/src/main/java/com/mile/post/service/dto/WriterAuthenticateResponse.java b/module-domain/src/main/java/com/mile/post/service/dto/WriterAuthenticateResponse.java deleted file mode 100644 index b29161fd..00000000 --- a/module-domain/src/main/java/com/mile/post/service/dto/WriterAuthenticateResponse.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.mile.post.service.dto; - -public record WriterAuthenticateResponse( - boolean canEdit -) { - public static WriterAuthenticateResponse of( - final boolean canEdit - ) { - return new WriterAuthenticateResponse(canEdit); - } -} From 20bc967ec02d705dc266b70b2d7ef1ec2785f914 Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Thu, 25 Jul 2024 01:05:31 +0900 Subject: [PATCH 2/3] =?UTF-8?q?#434=20[chore]=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mile/post/service/PostService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module-domain/src/main/java/com/mile/post/service/PostService.java b/module-domain/src/main/java/com/mile/post/service/PostService.java index 40be67a0..ee980c93 100644 --- a/module-domain/src/main/java/com/mile/post/service/PostService.java +++ b/module-domain/src/main/java/com/mile/post/service/PostService.java @@ -136,7 +136,7 @@ public PostAuthenticateResponse getAuthenticateWriter( return PostAuthenticateResponse.of(ROLE_ANONYMOUS); } - WriterName userWriterName = writerNameRetriever.findByMoimAndUser(moim.getId(), userId); // 유저 필명 + WriterName userWriterName = writerNameRetriever.findByMoimAndUser(moim.getId(), userId); if (postWriterName.equals(userWriterName)) { return PostAuthenticateResponse.of(ROLE_WRITER); } From 01c8132cebe8d50d1569f397732cfe86467f8db6 Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Sun, 28 Jul 2024 17:33:20 +0900 Subject: [PATCH 3/3] =?UTF-8?q?#434=20[refactor]=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mile/controller/post/PostController.java | 3 ++- .../java/com/mile/controller/post/PostControllerSwagger.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/module-api/src/main/java/com/mile/controller/post/PostController.java b/module-api/src/main/java/com/mile/controller/post/PostController.java index d3d65f33..1bcc03c1 100644 --- a/module-api/src/main/java/com/mile/controller/post/PostController.java +++ b/module-api/src/main/java/com/mile/controller/post/PostController.java @@ -8,6 +8,7 @@ import com.mile.post.service.dto.CommentCreateRequest; import com.mile.post.service.dto.CommentListResponse; import com.mile.post.service.dto.ModifyPostGetResponse; +import com.mile.post.service.dto.PostAuthenticateResponse; import com.mile.post.service.dto.PostCreateRequest; import com.mile.post.service.dto.PostCuriousResponse; import com.mile.post.service.dto.PostGetResponse; @@ -96,7 +97,7 @@ public SuccessResponse deleteCurious( @GetMapping("/{postId}/authenticate") @Override - public ResponseEntity getAuthenticateWrite( + public ResponseEntity> getAuthenticateWrite( @PostIdPathVariable final Long postId, @UserId final Long userId, @PathVariable("postId") final String postUrl diff --git a/module-api/src/main/java/com/mile/controller/post/PostControllerSwagger.java b/module-api/src/main/java/com/mile/controller/post/PostControllerSwagger.java index 6892e4ee..e5d0669e 100644 --- a/module-api/src/main/java/com/mile/controller/post/PostControllerSwagger.java +++ b/module-api/src/main/java/com/mile/controller/post/PostControllerSwagger.java @@ -7,6 +7,7 @@ import com.mile.post.service.dto.CommentCreateRequest; import com.mile.post.service.dto.CommentListResponse; import com.mile.post.service.dto.ModifyPostGetResponse; +import com.mile.post.service.dto.PostAuthenticateResponse; import com.mile.post.service.dto.PostCreateRequest; import com.mile.post.service.dto.PostCuriousResponse; import com.mile.post.service.dto.PostGetResponse; @@ -134,7 +135,7 @@ SuccessResponse deleteCurious( } ) - ResponseEntity getAuthenticateWrite( + ResponseEntity> getAuthenticateWrite( @Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) final Long postId, @Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @UserId final Long userId, @PathVariable("postId") final String postUrl