From ea44079240ec302728a04672ed1b66a30a2a211a Mon Sep 17 00:00:00 2001 From: janghyunjun Date: Wed, 20 Aug 2025 19:19:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[refactor]=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=ED=8C=94=EB=A1=9C=EC=9B=8C=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20?= =?UTF-8?q?=EB=82=98=EC=9D=B8=EC=A7=80=EC=97=AC=EB=B6=80=20=ED=8C=90?= =?UTF-8?q?=EB=8B=A8=ED=95=98=EB=8A=94=20=ED=94=8C=EB=9E=98=EA=B7=B8=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=20(#268)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../in/web/response/UserFollowersResponse.java | 3 ++- .../user/application/mapper/FollowQueryMapper.java | 11 ++++++++++- .../service/following/UserGetFollowService.java | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/konkuk/thip/user/adapter/in/web/response/UserFollowersResponse.java b/src/main/java/konkuk/thip/user/adapter/in/web/response/UserFollowersResponse.java index 3ef9c4fdf..96955af43 100644 --- a/src/main/java/konkuk/thip/user/adapter/in/web/response/UserFollowersResponse.java +++ b/src/main/java/konkuk/thip/user/adapter/in/web/response/UserFollowersResponse.java @@ -18,7 +18,8 @@ public record FollowerDto( String profileImageUrl, String aliasName, String aliasColor, - Integer followerCount + Integer followerCount, + boolean isMyself ){ } diff --git a/src/main/java/konkuk/thip/user/application/mapper/FollowQueryMapper.java b/src/main/java/konkuk/thip/user/application/mapper/FollowQueryMapper.java index 4633e8b2e..de416e8c4 100644 --- a/src/main/java/konkuk/thip/user/application/mapper/FollowQueryMapper.java +++ b/src/main/java/konkuk/thip/user/application/mapper/FollowQueryMapper.java @@ -3,13 +3,22 @@ import konkuk.thip.user.adapter.in.web.response.UserFollowersResponse; import konkuk.thip.user.adapter.in.web.response.UserFollowingResponse; import konkuk.thip.user.application.port.out.dto.UserQueryDto; +import org.mapstruct.Context; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.Named; @Mapper(componentModel = "spring") public interface FollowQueryMapper { - UserFollowersResponse.FollowerDto toFollowerDto(UserQueryDto dto); + // UserQueryDto의 userId와 Context로 넘어온 userId를 비교해서 true,false를 isMyself 필드에 주입 + @Mapping(target = "isMyself", source = "dto.userId", qualifiedByName = "isMyself") + UserFollowersResponse.FollowerDto toFollowerDto(UserQueryDto dto, @Context Long loginUserId); + + @Named("isMyself") + default boolean isMyself(Long userId, @Context Long loginUserId) { + return userId != null && userId.equals(loginUserId); + } @Mapping(target = "isFollowing", constant = "true") UserFollowingResponse.FollowingDto toFollowingDto(UserQueryDto dto); diff --git a/src/main/java/konkuk/thip/user/application/service/following/UserGetFollowService.java b/src/main/java/konkuk/thip/user/application/service/following/UserGetFollowService.java index 0c1bdf3da..469c7671a 100644 --- a/src/main/java/konkuk/thip/user/application/service/following/UserGetFollowService.java +++ b/src/main/java/konkuk/thip/user/application/service/following/UserGetFollowService.java @@ -36,7 +36,7 @@ public UserFollowersResponse getUserFollowers(Long userId, String cursor, int si ); var followers = result.contents().stream() - .map(followQueryMapper::toFollowerDto) + .map(dto -> followQueryMapper.toFollowerDto(dto, userId)) .toList(); return UserFollowersResponse.builder() From b9792f6e7a169597f1f3bd4fca39f09981ccba6a Mon Sep 17 00:00:00 2001 From: janghyunjun Date: Wed, 20 Aug 2025 19:20:03 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[test]=20=ED=8A=B9=EC=A0=95=20=EC=B1=85?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9E=91=EC=84=B1=EB=90=9C=20=ED=94=BC?= =?UTF-8?q?=EB=93=9C=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=EB=82=B4=20=ED=94=BC?= =?UTF-8?q?=EB=93=9C=EB=8F=84=20=EC=A1=B0=ED=9A=8C=EB=90=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?(#268)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thip/feed/adapter/in/web/FeedRelatedWithBookApiTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedRelatedWithBookApiTest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedRelatedWithBookApiTest.java index e831645d4..c4b8d2610 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedRelatedWithBookApiTest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedRelatedWithBookApiTest.java @@ -263,7 +263,7 @@ void getFeedsByBook_cursor_paging_success() throws Exception { } @Test - @DisplayName("비공개 피드 제외 및 자기 자신 피드 제외 검증") + @DisplayName("비공개 피드 제외 검증") void getFeedsByBook_visibility_and_self_filter() throws Exception { // given AliasJpaEntity alias = aliasJpaRepository.save(TestEntityFactory.createLiteratureAlias()); @@ -304,7 +304,7 @@ void getFeedsByBook_visibility_and_self_filter() throws Exception { JsonNode feeds = root.path("data").path("feeds"); // 자기 자신 글 제외 비공개 제외로 인해 only othersPublic 만 남아야 함 - assertThat(feeds.size()).isEqualTo(1); + assertThat(feeds.size()).isEqualTo(2); assertThat(feeds.get(0).path("creatorId").asLong()).isEqualTo(other.getUserId()); assertThat(feeds.get(0).path("isWriter").asBoolean()).isFalse(); }