diff --git a/src/main/java/org/hankki/hankkiserver/api/favorite/service/FavoriteQueryService.java b/src/main/java/org/hankki/hankkiserver/api/favorite/service/FavoriteQueryService.java index 8777f954..d211c263 100644 --- a/src/main/java/org/hankki/hankkiserver/api/favorite/service/FavoriteQueryService.java +++ b/src/main/java/org/hankki/hankkiserver/api/favorite/service/FavoriteQueryService.java @@ -2,10 +2,12 @@ import java.util.ArrayList; import lombok.RequiredArgsConstructor; +import org.hankki.hankkiserver.api.auth.service.UserInfoFinder; import org.hankki.hankkiserver.api.favorite.service.command.FavoriteOwnershipGetCommand; import org.hankki.hankkiserver.api.favorite.service.command.FavoritesGetCommand; import org.hankki.hankkiserver.api.favorite.service.command.FavoritesWithStatusGetCommand; import org.hankki.hankkiserver.api.favorite.service.response.FavoriteGetResponse; +import org.hankki.hankkiserver.api.favorite.service.response.FavoriteNicknameGetResponse; import org.hankki.hankkiserver.api.favorite.service.response.FavoriteOwnershipGetResponse; import org.hankki.hankkiserver.api.favorite.service.response.FavoritesWithStatusGetResponse; import org.hankki.hankkiserver.api.store.service.StoreFinder; @@ -25,6 +27,7 @@ public class FavoriteQueryService { private final FavoriteFinder favoriteFinder; private final StoreFinder storeFinder; + private final UserInfoFinder userInfoFinder; @Transactional(readOnly = true) public FavoriteGetResponse findFavorite(final FavoritesGetCommand command) { @@ -59,6 +62,7 @@ private boolean favoriteHasNoStore(final Favorite favorite) { return favorite.getFavoriteStores().isEmpty(); } + @Transactional(readOnly = true) public FavoriteOwnershipGetResponse checkFavoriteOwnership(final FavoriteOwnershipGetCommand command) { return FavoriteOwnershipGetResponse.of(isOwner(getOwnerIdById(command.favoriteId()), command.userId())); } @@ -70,4 +74,13 @@ private long getOwnerIdById(final long id) { private boolean isOwner(final long ownerId, final long userId) { return ownerId == userId; } + + @Transactional(readOnly = true) + public FavoriteNicknameGetResponse getFavoriteUserNickname(final long id) { + return FavoriteNicknameGetResponse.of(getNicknameByOwnerId(getOwnerIdById(id))); + } + + private String getNicknameByOwnerId(final long userId) { + return userInfoFinder.getUserInfo(userId).getNickname(); + } } diff --git a/src/main/java/org/hankki/hankkiserver/api/favorite/service/response/FavoriteNicknameGetResponse.java b/src/main/java/org/hankki/hankkiserver/api/favorite/service/response/FavoriteNicknameGetResponse.java new file mode 100644 index 00000000..3189f2ec --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/api/favorite/service/response/FavoriteNicknameGetResponse.java @@ -0,0 +1,9 @@ +package org.hankki.hankkiserver.api.favorite.service.response; + +public record FavoriteNicknameGetResponse( + String nickname +) { + public static FavoriteNicknameGetResponse of(final String nickname) { + return new FavoriteNicknameGetResponse(nickname); + } +}