From 880db68c1862074bc768924ffc9a9083c175537c Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:19:58 +0900 Subject: [PATCH 01/37] =?UTF-8?q?[FEAT]=20Feed=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=EC=97=90=20isPublic=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index 414e9b12..0038629e 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -44,6 +44,9 @@ public class Feed { @Column(nullable = false) private Boolean isSpoiler; + @Column(columnDefinition = "Boolean default true", nullable = false) + private Boolean isPublic; + @Column(nullable = false) private LocalDateTime createdDate; From 7152dfe312e832815228233e9bc584a715dd821d Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:22:38 +0900 Subject: [PATCH 02/37] =?UTF-8?q?[FEAT]=20FeedCreateRequest=EC=97=90=20isP?= =?UTF-8?q?ublic=20=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/dto/feed/FeedCreateRequest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java index 637f63ba..2b9ef93b 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java @@ -15,6 +15,8 @@ public record FeedCreateRequest( String feedContent, Long novelId, @NotNull(message = "스포일러 여부는 null일 수 없습니다.") - Boolean isSpoiler + Boolean isSpoiler, + + Boolean isPublic ) { } From 9e6fe3ed23474dce9d457201c3dc0acedd56fb4f Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:23:05 +0900 Subject: [PATCH 03/37] =?UTF-8?q?[FEAT]=20FeedCreateRequest=EC=97=90=20isP?= =?UTF-8?q?ublic=20=ED=95=84=EB=93=9C=EC=97=90=20@NotNull=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java index 2b9ef93b..494dfdeb 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java @@ -17,6 +17,7 @@ public record FeedCreateRequest( @NotNull(message = "스포일러 여부는 null일 수 없습니다.") Boolean isSpoiler, + @NotNull(message = "공개 여부는 null일 수 없습니다.") Boolean isPublic ) { } From 555133b80a96ad828b80b8b9dabab1b4b929fbf3 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:23:27 +0900 Subject: [PATCH 04/37] =?UTF-8?q?[STYLE]=20=EA=B0=80=EB=8F=85=EC=84=B1?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EA=B0=9C=ED=96=89=20-=20FeedC?= =?UTF-8?q?reateRequest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java index 494dfdeb..f6fe7c4c 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedCreateRequest.java @@ -10,10 +10,13 @@ public record FeedCreateRequest( @NotNull(message = "카테고리는 null일 수 없습니다.") @NotEmpty(message = "카테고리는 1개 이상 선택해야 합니다.") List relevantCategories, + @NotBlank(message = "피드 내용은 비어 있거나, 공백일 수 없습니다.") @Size(max = 2000, message = "피드 내용은 2000자를 초과할 수 없습니다.") String feedContent, + Long novelId, + @NotNull(message = "스포일러 여부는 null일 수 없습니다.") Boolean isSpoiler, From 9bcdae38ae1d29d1869251631e1bc093cb9f6af4 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:27:54 +0900 Subject: [PATCH 05/37] =?UTF-8?q?[FEAT]=20Feed=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20=EB=B0=8F=20=EC=A0=95=EC=A0=81=20=ED=8C=A9=ED=84=B0?= =?UTF-8?q?=EB=A6=AC=20=EB=A9=94=EC=84=9C=EB=93=9C=EC=97=90=20isPublic=20?= =?UTF-8?q?=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 7 ++++--- .../java/org/websoso/WSSServer/service/FeedService.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index 0038629e..31e045a0 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -72,15 +72,16 @@ public class Feed { @OneToOne(mappedBy = "feed", cascade = ALL, fetch = FetchType.LAZY, orphanRemoval = true) private PopularFeed popularFeed; - private Feed(String feedContent, Long novelId, Boolean isSpoiler, User user) { + private Feed(String feedContent, Long novelId, Boolean isSpoiler, Boolean isPublic, User user) { this.feedContent = feedContent; this.novelId = novelId; this.isSpoiler = isSpoiler; + this.isPublic = isPublic; this.user = user; } - public static Feed create(String feedContent, Long novelId, Boolean isSpoiler, User user) { - return new Feed(feedContent, novelId, isSpoiler, user); + public static Feed create(String feedContent, Long novelId, Boolean isSpoiler, Boolean isPublic, User user) { + return new Feed(feedContent, novelId, isSpoiler, isPublic, user); } public void updateFeed(String feedContent, Boolean isSpoiler, Long novelId) { diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 89d328d3..23e0cf71 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -83,7 +83,7 @@ public class FeedService { public void createFeed(User user, FeedCreateRequest request) { Optional.ofNullable(request.novelId()) .ifPresent(novelService::getNovelOrException); - Feed feed = Feed.create(request.feedContent(), request.novelId(), request.isSpoiler(), user); + Feed feed = Feed.create(request.feedContent(), request.novelId(), request.isSpoiler(), request.isPublic(), user); feedRepository.save(feed); feedCategoryService.createFeedCategory(feed, request.relevantCategories()); } From 38d1f5af53c0d50e4a599d93b172fe6f578814e4 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:33:23 +0900 Subject: [PATCH 06/37] =?UTF-8?q?[REFACTOR]=20Feed=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=EC=8B=9C=20FeedCreateRequest=EB=A1=9C=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20=EC=BA=A1=EC=8A=90=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/domain/Feed.java | 15 ++++++++------- .../websoso/WSSServer/service/FeedService.java | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index 31e045a0..38dbdcfd 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -20,6 +20,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import org.hibernate.annotations.DynamicInsert; +import org.websoso.WSSServer.dto.feed.FeedCreateRequest; @Getter @DynamicInsert @@ -72,16 +73,16 @@ public class Feed { @OneToOne(mappedBy = "feed", cascade = ALL, fetch = FetchType.LAZY, orphanRemoval = true) private PopularFeed popularFeed; - private Feed(String feedContent, Long novelId, Boolean isSpoiler, Boolean isPublic, User user) { - this.feedContent = feedContent; - this.novelId = novelId; - this.isSpoiler = isSpoiler; - this.isPublic = isPublic; + private Feed(FeedCreateRequest request, User user) { + this.feedContent = request.feedContent(); + this.novelId = request.novelId(); + this.isSpoiler = request.isSpoiler(); + this.isPublic = request.isPublic(); this.user = user; } - public static Feed create(String feedContent, Long novelId, Boolean isSpoiler, Boolean isPublic, User user) { - return new Feed(feedContent, novelId, isSpoiler, isPublic, user); + public static Feed create(FeedCreateRequest request, User user) { + return new Feed(request, user); } public void updateFeed(String feedContent, Boolean isSpoiler, Long novelId) { diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 23e0cf71..a8a6634a 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -83,7 +83,7 @@ public class FeedService { public void createFeed(User user, FeedCreateRequest request) { Optional.ofNullable(request.novelId()) .ifPresent(novelService::getNovelOrException); - Feed feed = Feed.create(request.feedContent(), request.novelId(), request.isSpoiler(), request.isPublic(), user); + Feed feed = Feed.create(request, user); feedRepository.save(feed); feedCategoryService.createFeedCategory(feed, request.relevantCategories()); } From 7e64d0253e898686edcdd24c8118c1b04a3d52b2 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:34:28 +0900 Subject: [PATCH 07/37] =?UTF-8?q?[STYLE]=20=EA=B0=80=EB=8F=85=EC=84=B1?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EA=B0=9C=ED=96=89=20-=20FeedU?= =?UTF-8?q?pdateRequest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java index f2196008..9c81dfdc 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java @@ -10,10 +10,13 @@ public record FeedUpdateRequest( @NotNull(message = "카테고리는 null일 수 없습니다.") @NotEmpty(message = "카테고리는 1개 이상 선택해야 합니다.") List relevantCategories, + @NotBlank(message = "피드 내용은 비어 있거나, 공백일 수 없습니다.") @Size(max = 2000, message = "피드 내용은 2000자를 초과할 수 없습니다.") String feedContent, + Long novelId, + @NotNull(message = "스포일러 여부는 null일 수 없습니다.") Boolean isSpoiler ) { From b64051ec575262c0827095daaeaeaea2882d16a2 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 20:34:51 +0900 Subject: [PATCH 08/37] =?UTF-8?q?[FEAT]=20FeedUpdateRequest=EC=97=90=20isP?= =?UTF-8?q?ublic=20=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java index 9c81dfdc..c6c5342e 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java @@ -18,6 +18,8 @@ public record FeedUpdateRequest( Long novelId, @NotNull(message = "스포일러 여부는 null일 수 없습니다.") - Boolean isSpoiler + Boolean isSpoiler, + + Boolean isPublic ) { } From 1b6bc7230565d210b0b3ae2413953f7b173d657e Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 21:03:26 +0900 Subject: [PATCH 09/37] =?UTF-8?q?[FEAT]=20FeedUpdateRequest=EC=97=90=20isP?= =?UTF-8?q?ublic=20=ED=95=84=EB=93=9C=EC=97=90=20@NotNull=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java index c6c5342e..216ba89b 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedUpdateRequest.java @@ -20,6 +20,7 @@ public record FeedUpdateRequest( @NotNull(message = "스포일러 여부는 null일 수 없습니다.") Boolean isSpoiler, + @NotNull(message = "공개 여부는 null일 수 없습니다.") Boolean isPublic ) { } From 3801324cb4d7851271005b03444afce51a0faea3 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 21:07:52 +0900 Subject: [PATCH 10/37] =?UTF-8?q?[FEAT]=20Feed.updateFeed=EC=97=90=20isPub?= =?UTF-8?q?lic=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 3 ++- src/main/java/org/websoso/WSSServer/service/FeedService.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index 38dbdcfd..651125c9 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -85,9 +85,10 @@ public static Feed create(FeedCreateRequest request, User user) { return new Feed(request, user); } - public void updateFeed(String feedContent, Boolean isSpoiler, Long novelId) { + public void updateFeed(String feedContent, Boolean isSpoiler, Boolean isPublic, Long novelId) { this.feedContent = feedContent; this.isSpoiler = isSpoiler; + this.isPublic = isPublic; this.novelId = novelId; this.modifiedDate = LocalDateTime.now(); } diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index a8a6634a..ae8094b3 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -94,7 +94,7 @@ public void updateFeed(Long feedId, FeedUpdateRequest request) { if (request.novelId() != null && feed.isNovelChanged(request.novelId())) { novelService.getNovelOrException(request.novelId()); } - feed.updateFeed(request.feedContent(), request.isSpoiler(), request.novelId()); + feed.updateFeed(request.feedContent(), request.isSpoiler(), request.isPublic(), request.novelId()); feedCategoryService.updateFeedCategory(feed, request.relevantCategories()); } From 5497c7e63bd9a2a09098517b548a6988330ca82d Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 21:09:16 +0900 Subject: [PATCH 11/37] =?UTF-8?q?[REFACTOR]=20Feed=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C=20FeedUpdateRequest=EB=A1=9C=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20=EC=BA=A1=EC=8A=90=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 11 ++++++----- .../org/websoso/WSSServer/service/FeedService.java | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index 651125c9..c1f73077 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -21,6 +21,7 @@ import lombok.NoArgsConstructor; import org.hibernate.annotations.DynamicInsert; import org.websoso.WSSServer.dto.feed.FeedCreateRequest; +import org.websoso.WSSServer.dto.feed.FeedUpdateRequest; @Getter @DynamicInsert @@ -85,11 +86,11 @@ public static Feed create(FeedCreateRequest request, User user) { return new Feed(request, user); } - public void updateFeed(String feedContent, Boolean isSpoiler, Boolean isPublic, Long novelId) { - this.feedContent = feedContent; - this.isSpoiler = isSpoiler; - this.isPublic = isPublic; - this.novelId = novelId; + public void updateFeed(FeedUpdateRequest request) { + this.feedContent = request.feedContent(); + this.isSpoiler = request.isSpoiler(); + this.isPublic = request.isPublic(); + this.novelId = request.novelId(); this.modifiedDate = LocalDateTime.now(); } diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index ae8094b3..5e103af2 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -94,7 +94,7 @@ public void updateFeed(Long feedId, FeedUpdateRequest request) { if (request.novelId() != null && feed.isNovelChanged(request.novelId())) { novelService.getNovelOrException(request.novelId()); } - feed.updateFeed(request.feedContent(), request.isSpoiler(), request.isPublic(), request.novelId()); + feed.updateFeed(request); feedCategoryService.updateFeedCategory(feed, request.relevantCategories()); } From 062fdc2a222c9b38b52c48f6627ce2136ac69c30 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:43:55 +0900 Subject: [PATCH 12/37] =?UTF-8?q?[REMOVE]=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20import=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/PopularFeedService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index 672a91b0..f7f2351a 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Optional; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.websoso.WSSServer.domain.Feed; From e2effbfca17e1f1e752e334496c8bc2304f64544 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:44:15 +0900 Subject: [PATCH 13/37] =?UTF-8?q?[FEAT]=20=EC=9D=91=EB=8B=B5(PopularFeedGe?= =?UTF-8?q?tResponse)=EC=97=90=20isPublic=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WSSServer/dto/popularFeed/PopularFeedGetResponse.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/dto/popularFeed/PopularFeedGetResponse.java b/src/main/java/org/websoso/WSSServer/dto/popularFeed/PopularFeedGetResponse.java index d7d554fa..7fa90ff6 100644 --- a/src/main/java/org/websoso/WSSServer/dto/popularFeed/PopularFeedGetResponse.java +++ b/src/main/java/org/websoso/WSSServer/dto/popularFeed/PopularFeedGetResponse.java @@ -7,7 +7,8 @@ public record PopularFeedGetResponse( String feedContent, Integer likeCount, Integer commentCount, - Boolean isSpoiler + Boolean isSpoiler, + Boolean isPublic ) { public static PopularFeedGetResponse of(PopularFeed popularFeed) { @@ -16,7 +17,8 @@ public static PopularFeedGetResponse of(PopularFeed popularFeed) { popularFeed.getFeed().getFeedContent(), popularFeed.getFeed().getLikes().size(), popularFeed.getFeed().getComments().size(), - popularFeed.getFeed().getIsSpoiler() + popularFeed.getFeed().getIsSpoiler(), + popularFeed.getFeed().getIsPublic() ); } } From 31e9d5b1af6c86c1b9763dc64d7401aa328c51ec Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:45:11 +0900 Subject: [PATCH 14/37] =?UTF-8?q?[FEAT]=20=EC=9D=B8=EC=A6=9D=20=EC=97=AC?= =?UTF-8?q?=EB=B6=80=EC=97=90=20=EB=94=B0=EB=9D=BC=20null-safe=ED=95=98?= =?UTF-8?q?=EA=B2=8C=20userId=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/service/PopularFeedService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index f7f2351a..c6b7d42e 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -104,6 +104,10 @@ private String generateNotificationBodyFragment(Feed feed) { @Transactional(readOnly = true) public PopularFeedsGetResponse getPopularFeeds(User user) { + Long currentUserId = Optional.ofNullable(user) + .map(User::getUserId) + .orElse(null); + List popularFeeds = Optional.ofNullable(user) .map(u -> findPopularFeedsWithUser(u.getUserId())) .orElseGet(this::findPopularFeedsWithoutUser); From b9e06871a7450c98c045fe81134069c2835a0659 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:46:51 +0900 Subject: [PATCH 15/37] =?UTF-8?q?[FEAT]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=ED=95=98=EB=8A=94=20isVisibleToUser?= =?UTF-8?q?()=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/service/PopularFeedService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index c6b7d42e..a843c2e7 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -128,4 +128,8 @@ private static List mapToPopularFeedGetResponseList(List .map(PopularFeedGetResponse::of) .toList(); } + + private static boolean isVisibleToUser(Feed feed, Long currentUserId) { + return feed.getIsPublic() || feed.getWriterId().equals(currentUserId); + } } From 68a10cfd5b7ceaf51bef0e4e5ae5ce3e0d466a08 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:47:24 +0900 Subject: [PATCH 16/37] =?UTF-8?q?[FIX]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=EC=9C=84=ED=95=B4=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20-=20userId=20=ED=8F=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/service/PopularFeedService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index a843c2e7..05d1cea7 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -111,7 +111,10 @@ public PopularFeedsGetResponse getPopularFeeds(User user) { List popularFeeds = Optional.ofNullable(user) .map(u -> findPopularFeedsWithUser(u.getUserId())) .orElseGet(this::findPopularFeedsWithoutUser); - List popularFeedGetResponses = mapToPopularFeedGetResponseList(popularFeeds); + + List popularFeedGetResponses = + mapToPopularFeedGetResponseList(popularFeeds, currentUserId); + return new PopularFeedsGetResponse(popularFeedGetResponses); } @@ -123,7 +126,8 @@ private List findPopularFeedsWithoutUser() { return popularFeedRepository.findTop9ByOrderByPopularFeedIdDesc(); } - private static List mapToPopularFeedGetResponseList(List popularFeeds) { + private static List mapToPopularFeedGetResponseList(List popularFeeds, + Long currentUserId) { return popularFeeds.stream() .map(PopularFeedGetResponse::of) .toList(); From fde912aa7bbdee216f216df7e706b799b577f7b0 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Fri, 18 Apr 2025 23:47:43 +0900 Subject: [PATCH 17/37] =?UTF-8?q?[FIX]=20=EC=B2=B4=EC=9D=B4=EB=8B=9D?= =?UTF-8?q?=EC=97=90=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94=EC=9C=84=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20=ED=95=84=ED=84=B0?= =?UTF-8?q?=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/PopularFeedService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index 05d1cea7..4446e1db 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -129,6 +129,7 @@ private List findPopularFeedsWithoutUser() { private static List mapToPopularFeedGetResponseList(List popularFeeds, Long currentUserId) { return popularFeeds.stream() + .filter(pf -> isVisibleToUser(pf.getFeed(), currentUserId)) .map(PopularFeedGetResponse::of) .toList(); } From 0726d96a88e033a6aa4e61bb212b5c48c3228934 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 00:01:29 +0900 Subject: [PATCH 18/37] =?UTF-8?q?[FEAT]=20=EC=9D=91=EB=8B=B5(InterestFeedG?= =?UTF-8?q?etResponse)=EC=97=90=20isPublic=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/dto/feed/InterestFeedGetResponse.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/InterestFeedGetResponse.java b/src/main/java/org/websoso/WSSServer/dto/feed/InterestFeedGetResponse.java index b9542f8e..3e840803 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/InterestFeedGetResponse.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/InterestFeedGetResponse.java @@ -12,6 +12,7 @@ public record InterestFeedGetResponse( String novelImage, Float novelRating, Long novelRatingCount, + Boolean isPublic, String nickname, String avatarImage, String feedContent @@ -27,6 +28,7 @@ public static InterestFeedGetResponse of(Novel novel, User user, Feed feed, Avat novel.getNovelImage(), novelRating, novelRatingCount, + feed.getIsPublic(), user.getNickname(), avatar.getAvatarImage(), feed.getFeedContent() From e229dd53175a46f7430ba664d33294451134b195 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 00:07:35 +0900 Subject: [PATCH 19/37] =?UTF-8?q?[FEAT]=20Feed=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=EC=97=90=20isVisibleTo()=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 도메인에게 책임 위임, 응집 --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index c1f73077..b2c3fd3f 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -109,4 +109,8 @@ public Long getWriterId() { public boolean isMine(Long userId) { return this.user.getUserId().equals(userId); } + + public boolean isVisibleTo(Long userId) { + return this.isPublic || this.user.getUserId().equals(userId); + } } From a625c9aaad9d69f7f109fc2cca2884b0f48b475f Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 00:08:53 +0900 Subject: [PATCH 20/37] =?UTF-8?q?[REFACTOR]=20=EA=B3=B5=EA=B0=9C=20?= =?UTF-8?q?=EB=B2=94=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC?= =?UTF-8?q?=EB=93=9C=20=ED=95=84=ED=84=B0=EB=A7=81=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=ED=8C=90=EB=8B=A8=EC=9D=84=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EB=A9=94=EC=84=9C=EB=93=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/PopularFeedService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index 4446e1db..b6755ea0 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -129,7 +129,7 @@ private List findPopularFeedsWithoutUser() { private static List mapToPopularFeedGetResponseList(List popularFeeds, Long currentUserId) { return popularFeeds.stream() - .filter(pf -> isVisibleToUser(pf.getFeed(), currentUserId)) + .filter(pf -> pf.getFeed().isVisibleTo(currentUserId)) .map(PopularFeedGetResponse::of) .toList(); } From 32bfa37196eb9355447f470bed924993ab60b53a Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 00:08:58 +0900 Subject: [PATCH 21/37] =?UTF-8?q?[REMOVE]=20=EC=84=9C=EB=B9=84=EC=8A=A4=20?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=96=B4=EC=97=90=EC=84=9C=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8D=98=20isVisibleToUser()=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 도메인 메서드로 교체에 따른 제거 --- .../org/websoso/WSSServer/service/PopularFeedService.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java index b6755ea0..d2890983 100644 --- a/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/PopularFeedService.java @@ -133,8 +133,4 @@ private static List mapToPopularFeedGetResponseList(List .map(PopularFeedGetResponse::of) .toList(); } - - private static boolean isVisibleToUser(Feed feed, Long currentUserId) { - return feed.getIsPublic() || feed.getWriterId().equals(currentUserId); - } } From 2dcfa729ea362249225fbf64b023e8f5ecd571db Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 00:09:46 +0900 Subject: [PATCH 22/37] =?UTF-8?q?[FIX]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 5e103af2..60510d55 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -322,6 +322,7 @@ public InterestFeedsGetResponse getInterestFeeds(User user) { .collect(Collectors.toMap(Avatar::getAvatarId, avatar -> avatar)); List interestFeedGetResponses = interestFeeds.stream() + .filter(feed -> feed.isVisibleTo(user.getUserId())) .map(feed -> { Novel novel = novelMap.get(feed.getNovelId()); Avatar avatar = avatarMap.get(feed.getUser().getAvatarId()); From a56d4274d2f87283f9558c35fac3bf913d6d57e7 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 22:08:31 +0900 Subject: [PATCH 23/37] =?UTF-8?q?[REFACTOR]=20=EC=82=BC=ED=95=AD=EC=97=B0?= =?UTF-8?q?=EC=82=B0=EC=9E=90=EA=B0=80=20=EC=95=84=EB=8B=8C=20Optional?= =?UTF-8?q?=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 60510d55..9756e95a 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -350,9 +350,9 @@ public NovelGetResponseFeedTab getFeedsByNovel(User user, Long novelId, Long las @Transactional(readOnly = true) public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFeedId, int size) { User owner = userService.getUserOrException(ownerId); - Long visitorId = visitor == null - ? null - : visitor.getUserId(); + Long visitorId = Optional.ofNullable(visitor) + .map(User::getUserId) + .orElse(null); if (owner.getIsProfilePublic() || isOwner(visitor, ownerId)) { List feedsByNoOffsetPagination = From db0944be63910bb711ef729581ce1879313b9aed Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Sat, 19 Apr 2025 22:15:36 +0900 Subject: [PATCH 24/37] =?UTF-8?q?[RENAME]=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9D=B4=EB=A6=84=EC=9D=B4=20=EB=93=9C?= =?UTF-8?q?=EB=9F=AC=EB=82=98=EB=AF=80=EB=A1=9C=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 9756e95a..67e7c0f1 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -355,10 +355,9 @@ public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFe .orElse(null); if (owner.getIsProfilePublic() || isOwner(visitor, ownerId)) { - List feedsByNoOffsetPagination = - feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, size); + List feeds = feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, size); - List novelIds = feedsByNoOffsetPagination.stream() + List novelIds = feeds.stream() .map(Feed::getNovelId) .filter(Objects::nonNull) .collect(Collectors.toList()); @@ -366,12 +365,12 @@ public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFe .stream() .collect(Collectors.toMap(Novel::getNovelId, novel -> novel)); - List userFeedGetResponseList = feedsByNoOffsetPagination.stream() + List userFeedGetResponseList = feeds.stream() .map(feed -> UserFeedGetResponse.of(feed, novelMap.get(feed.getNovelId()), visitorId)) .toList(); // TODO Slice의 hasNext()로 판단하도록 수정 - Boolean isLoadable = feedsByNoOffsetPagination.size() == size; + Boolean isLoadable = feeds.size() == size; return UserFeedsGetResponse.of(isLoadable, userFeedGetResponseList); } From 7ecff9e7f727ffd69bd6256288a3216b6cfdbff6 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:49:45 +0900 Subject: [PATCH 25/37] =?UTF-8?q?[FIX]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 67e7c0f1..4691ec2a 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -357,7 +357,11 @@ public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFe if (owner.getIsProfilePublic() || isOwner(visitor, ownerId)) { List feeds = feedRepository.findFeedsByNoOffsetPagination(owner, lastFeedId, size); - List novelIds = feeds.stream() + List visibleFeeds = feeds.stream() + .filter(feed -> feed.isVisibleTo(visitorId)) + .toList(); + + List novelIds = visibleFeeds.stream() .map(Feed::getNovelId) .filter(Objects::nonNull) .collect(Collectors.toList()); @@ -365,7 +369,7 @@ public UserFeedsGetResponse getUserFeeds(User visitor, Long ownerId, Long lastFe .stream() .collect(Collectors.toMap(Novel::getNovelId, novel -> novel)); - List userFeedGetResponseList = feeds.stream() + List userFeedGetResponseList = visibleFeeds.stream() .map(feed -> UserFeedGetResponse.of(feed, novelMap.get(feed.getNovelId()), visitorId)) .toList(); From c613b08dae4f2086072fd46085e1b1e4ef4cb93f Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:51:51 +0900 Subject: [PATCH 26/37] =?UTF-8?q?[REFACTOR]=20=EC=82=BC=ED=95=AD=EC=97=B0?= =?UTF-8?q?=EC=82=B0=EC=9E=90=EA=B0=80=20=EC=95=84=EB=8B=8C=20Optional?= =?UTF-8?q?=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 4691ec2a..1f75123c 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -333,10 +333,9 @@ public InterestFeedsGetResponse getInterestFeeds(User user) { } public NovelGetResponseFeedTab getFeedsByNovel(User user, Long novelId, Long lastFeedId, int size) { - Long userIdOrNull = user == null - ? null - : user.getUserId(); - + Long userIdOrNull = Optional.ofNullable(user) + .map(User::getUserId) + .orElse(null); Slice feeds = feedRepository.findFeedsByNovelId(novelId, lastFeedId, userIdOrNull, PageRequest.of(DEFAULT_PAGE_NUMBER, size)); From 91b6dd1ead67353182b8ebf7675de6dde5352b6c Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:53:22 +0900 Subject: [PATCH 27/37] =?UTF-8?q?[FEAT]=20=EC=9D=91=EB=8B=B5(UserFeedGetRe?= =?UTF-8?q?sponse)=EC=97=90=20isPublic=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java b/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java index a64b150d..d5598bb0 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/UserFeedGetResponse.java @@ -23,7 +23,8 @@ public record UserFeedGetResponse( String title, Float novelRating, Long novelRatingCount, - List relevantCategories + List relevantCategories, + Boolean isPublic ) { public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId) { @@ -50,7 +51,8 @@ public static UserFeedGetResponse of(Feed feed, Novel novel, Long visitorId) { null : novel.getTitle(), novelRating, novelRatingCount, - relevantCategories + relevantCategories, + feed.getIsPublic() ); } From c1d96c7e2a3bebb6e12a83321c077a3e611bb0dd Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:55:01 +0900 Subject: [PATCH 28/37] =?UTF-8?q?[FIX]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 1f75123c..09a54e5c 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -339,7 +339,9 @@ public NovelGetResponseFeedTab getFeedsByNovel(User user, Long novelId, Long las Slice feeds = feedRepository.findFeedsByNovelId(novelId, lastFeedId, userIdOrNull, PageRequest.of(DEFAULT_PAGE_NUMBER, size)); - List feedGetResponses = feeds.getContent().stream() + List feedGetResponses = feeds.getContent() + .stream() + .filter(feed -> feed.isVisibleTo(userIdOrNull)) .map(feed -> createFeedInfo(feed, user)) .toList(); From 3024154a660b218e0a0bf5baa864b476eeca8f20 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:56:19 +0900 Subject: [PATCH 29/37] =?UTF-8?q?[FEAT]=20FeedInfo=EC=97=90=20isPublic=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java b/src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java index 95425bba..59114d19 100644 --- a/src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java +++ b/src/main/java/org/websoso/WSSServer/dto/feed/FeedInfo.java @@ -24,8 +24,8 @@ public record FeedInfo( List relevantCategories, Boolean isSpoiler, Boolean isModified, - Boolean isMyFeed - + Boolean isMyFeed, + Boolean isPublic ) { public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, Boolean isLiked, List relevantCategories, Boolean isMyFeed) { @@ -60,7 +60,8 @@ public static FeedInfo of(Feed feed, UserBasicInfo userBasicInfo, Novel novel, B relevantCategories, feed.getIsSpoiler(), !feed.getCreatedDate().equals(feed.getModifiedDate()), - isMyFeed + isMyFeed, + feed.getIsPublic() ); } From 57e73507419853d861a666e6e817394dd9bacd06 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:58:43 +0900 Subject: [PATCH 30/37] =?UTF-8?q?[STYLE]=20=EC=BB=A8=EB=B2=A4=EC=85=98?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EA=B0=9C=ED=96=89=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 09a54e5c..e1fc3510 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -196,7 +196,8 @@ public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, in Slice feeds = findFeedsByCategoryLabel(category == null ? DEFAULT_CATEGORY : category, lastFeedId, user == null ? null : user.getUserId(), PageRequest.of(DEFAULT_PAGE_NUMBER, size)); - List feedGetResponses = feeds.getContent().stream() + List feedGetResponses = feeds.getContent() + .stream() .map(feed -> createFeedInfo(feed, user)).toList(); return FeedsGetResponse.of(category == null ? DEFAULT_CATEGORY : category, feeds.hasNext(), From 93d6209da216b0e314d2bdb900f50f9a253332ed Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 22:58:52 +0900 Subject: [PATCH 31/37] =?UTF-8?q?[STYLE]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EA=B0=9C=ED=96=89=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index e1fc3510..c5f05bfc 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -200,8 +200,7 @@ public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, in .stream() .map(feed -> createFeedInfo(feed, user)).toList(); - return FeedsGetResponse.of(category == null ? DEFAULT_CATEGORY : category, feeds.hasNext(), - feedGetResponses); + return FeedsGetResponse.of(category == null ? DEFAULT_CATEGORY : category, feeds.hasNext(), feedGetResponses); } public void createComment(User user, Long feedId, CommentCreateRequest request) { From 633ec92728358afb060365b910f7e1af583292a8 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:02:09 +0900 Subject: [PATCH 32/37] =?UTF-8?q?[REFACTOR]=20=EC=84=A0=ED=83=9D=EB=90=9C?= =?UTF-8?q?=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=EA=B0=80=20=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20=EA=B8=B0=EB=B3=B8=EA=B0=92?= =?UTF-8?q?=EC=9D=84=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20getChosenCat?= =?UTF-8?q?egoryOrDefault=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index c5f05bfc..99b0814c 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -193,14 +193,19 @@ public FeedGetResponse getFeedById(User user, Long feedId) { @Transactional(readOnly = true) public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, int size) { - Slice feeds = findFeedsByCategoryLabel(category == null ? DEFAULT_CATEGORY : category, + Slice feeds = findFeedsByCategoryLabel(getChosenCategoryOrDefault(category), lastFeedId, user == null ? null : user.getUserId(), PageRequest.of(DEFAULT_PAGE_NUMBER, size)); List feedGetResponses = feeds.getContent() .stream() .map(feed -> createFeedInfo(feed, user)).toList(); - return FeedsGetResponse.of(category == null ? DEFAULT_CATEGORY : category, feeds.hasNext(), feedGetResponses); + return FeedsGetResponse.of(getChosenCategoryOrDefault(category), feeds.hasNext(), feedGetResponses); + } + + private static String getChosenCategoryOrDefault(String category) { + return Optional.ofNullable(category) + .orElse(DEFAULT_CATEGORY); } public void createComment(User user, Long feedId, CommentCreateRequest request) { From 357bf028fd8fc24cc1f2ee6fc6097294827dc613 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:03:00 +0900 Subject: [PATCH 33/37] =?UTF-8?q?[REFACTOR]=20=EC=82=BC=ED=95=AD=EC=97=B0?= =?UTF-8?q?=EC=82=B0=EC=9E=90=EA=B0=80=20=EC=95=84=EB=8B=8C=20Optional?= =?UTF-8?q?=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/websoso/WSSServer/service/FeedService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 99b0814c..92d6940e 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -193,8 +193,12 @@ public FeedGetResponse getFeedById(User user, Long feedId) { @Transactional(readOnly = true) public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, int size) { + Long userIdOrNull = Optional.ofNullable(user) + .map(User::getUserId) + .orElse(null); + Slice feeds = findFeedsByCategoryLabel(getChosenCategoryOrDefault(category), - lastFeedId, user == null ? null : user.getUserId(), PageRequest.of(DEFAULT_PAGE_NUMBER, size)); + lastFeedId, userIdOrNull, PageRequest.of(DEFAULT_PAGE_NUMBER, size)); List feedGetResponses = feeds.getContent() .stream() From c3554f77b14b78eb8bdbff99e88435ffaca72fb6 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:04:38 +0900 Subject: [PATCH 34/37] =?UTF-8?q?[STYLE]=20=EC=BB=A8=EB=B2=A4=EC=85=98?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EA=B0=9C=ED=96=89=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 92d6940e..808b93da 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -202,7 +202,8 @@ public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, in List feedGetResponses = feeds.getContent() .stream() - .map(feed -> createFeedInfo(feed, user)).toList(); + .map(feed -> createFeedInfo(feed, user)) + .toList(); return FeedsGetResponse.of(getChosenCategoryOrDefault(category), feeds.hasNext(), feedGetResponses); } From a36dd2e5dbcc7355ac8d0484384e79e24aaf0f07 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:09:06 +0900 Subject: [PATCH 35/37] =?UTF-8?q?[REFACTOR]=20isMine()=20=EB=82=B4?= =?UTF-8?q?=EB=B6=80=EC=97=90=EC=84=9C=20getWriterId()=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index b2c3fd3f..e44ec3df 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -107,7 +107,7 @@ public Long getWriterId() { } public boolean isMine(Long userId) { - return this.user.getUserId().equals(userId); + return this.getWriterId().equals(userId); } public boolean isVisibleTo(Long userId) { From 024d2cdfde68cbb10aad950278f4c7a1eb3c6e32 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:09:42 +0900 Subject: [PATCH 36/37] =?UTF-8?q?[REFACTOR]=20isVisibleTo()=20=EB=82=B4?= =?UTF-8?q?=EB=B6=80=EC=97=90=EC=84=9C=20isMine()=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/domain/Feed.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/websoso/WSSServer/domain/Feed.java b/src/main/java/org/websoso/WSSServer/domain/Feed.java index e44ec3df..4342d296 100644 --- a/src/main/java/org/websoso/WSSServer/domain/Feed.java +++ b/src/main/java/org/websoso/WSSServer/domain/Feed.java @@ -111,6 +111,6 @@ public boolean isMine(Long userId) { } public boolean isVisibleTo(Long userId) { - return this.isPublic || this.user.getUserId().equals(userId); + return this.isPublic || this.isMine(userId); } } From b5f7b311fd8662448016bfb97236485b44280013 Mon Sep 17 00:00:00 2001 From: Kim-TaeUk Date: Mon, 21 Apr 2025 23:10:13 +0900 Subject: [PATCH 37/37] =?UTF-8?q?[FIX]=20=EA=B3=B5=EA=B0=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=BC=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/websoso/WSSServer/service/FeedService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/websoso/WSSServer/service/FeedService.java b/src/main/java/org/websoso/WSSServer/service/FeedService.java index 808b93da..2f8d4f20 100644 --- a/src/main/java/org/websoso/WSSServer/service/FeedService.java +++ b/src/main/java/org/websoso/WSSServer/service/FeedService.java @@ -202,6 +202,7 @@ public FeedsGetResponse getFeeds(User user, String category, Long lastFeedId, in List feedGetResponses = feeds.getContent() .stream() + .filter(feed -> feed.isVisibleTo(userIdOrNull)) .map(feed -> createFeedInfo(feed, user)) .toList();