Skip to content

Commit

Permalink
fix : 아티스트 구독하지 않은 목록 인증/인가 수정 (#91)
Browse files Browse the repository at this point in the history
  • Loading branch information
GaBaljaintheroom authored Aug 10, 2024
1 parent 51ac459 commit 3fa96da
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ private RequestMatcher getMatcherForAnyone() {
antMatcher(HttpMethod.GET, "/api/v1/artists/search/**"),
antMatcher(HttpMethod.GET, "/api/v1/shows/search/**"),
antMatcher(HttpMethod.GET, "/api/v1/artists/filter"),
antMatcher(HttpMethod.GET, "/api/v1/artists/filter-total-count")
antMatcher(HttpMethod.GET, "/api/v1/artists/filter-total-count"),
antMatcher(HttpMethod.GET, "/api/v1/artists/unsubscriptions")
);
}

Expand All @@ -96,8 +97,7 @@ private RequestMatcher getMatcherForUserAndAdmin() {
antMatcher(HttpMethod.GET, "/api/v1/genres/unsubscriptions"),
antMatcher(HttpMethod.POST, "/api/v1/artists/subscribe"),
antMatcher(HttpMethod.POST, "/api/v1/artists/unsubscribe"),
antMatcher(HttpMethod.GET, "/api/v1/artists/subscriptions"),
antMatcher(HttpMethod.GET, "/api/v1/artists/unsubscriptions")
antMatcher(HttpMethod.GET, "/api/v1/artists/subscriptions")
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,15 @@ public ResponseEntity<PaginationApiResponse<ArtistUnsubscriptionPaginationApiPar
@AuthenticationPrincipal AuthenticatedUser user,
@ParameterObject ArtistUnsubscriptionPaginationApiRequest request
) {
var response = artistService.findArtistUnsubscriptions(
request.toServiceRequest(user.userId()));
var response =
(user == null)
? artistService.findArtistUnsubscriptionsForNonUser(
request.toNonUserServiceRequest()
)
: artistService.findArtistUnsubscriptions(
request.toServiceRequest(user.userId())
);

var data = response.data().stream()
.map(ArtistUnsubscriptionPaginationApiParam::from)
.toList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,17 @@ public ArtistUnsubscriptionPaginationServiceRequest toServiceRequest(UUID userId
.size(size)
.build();
}

public ArtistUnsubscriptionPaginationServiceRequest toNonUserServiceRequest() {
return ArtistUnsubscriptionPaginationServiceRequest.builder()
.subscriptionStatusApiType(SubscriptionStatusApiType.UNSUBSCRIBED)
.sortStandard(sortStandard)
.artistGenderApiTypes(artistGenderApiTypes)
.artistApiTypes(artistApiTypes)
.genreIds(genreIds)
.userId(null)
.cursor(cursor)
.size(size)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,18 @@ public PaginationServiceResponse<ArtistUnsubscriptionPaginationServiceParam> fin
return PaginationServiceResponse.of(data, response.hasNext());
}

public PaginationServiceResponse<ArtistUnsubscriptionPaginationServiceParam> findArtistUnsubscriptionsForNonUser(
ArtistUnsubscriptionPaginationServiceRequest request
) {
var response = artistUseCase.findAllArtistInCursorPagination(
request.toNonUserDomainRequest());
List<ArtistUnsubscriptionPaginationServiceParam> data = response.data().stream()
.map(ArtistUnsubscriptionPaginationServiceParam::new)
.toList();

return PaginationServiceResponse.of(data, response.hasNext());
}

private List<UUID> getSubscriptionArtistIds(UUID userId) {
List<ArtistSubscription> subscriptions = artistSubscriptionUseCase.findSubscriptionList(
userId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ public record ArtistUnsubscriptionPaginationServiceRequest(
) {

public ArtistPaginationDomainRequest toDomainRequest(List<UUID> artistIds) {
return buildDomainRequest(artistIds);
}

public ArtistPaginationDomainRequest toNonUserDomainRequest() {
return buildDomainRequest(List.of());
}

private ArtistPaginationDomainRequest buildDomainRequest(List<UUID> artistIds) {
var artistGenders = artistGenderApiTypes.stream()
.map(ArtistGenderApiType::toDomainType)
.toList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -443,4 +443,31 @@ void artistUnsubscribeWithPagination() {
}
);
}

@Test
@DisplayName("페이지네이션을 이용해 비회원도 구독하지 않은 아티스트를 조회할 수 있다.")
void artistUnsubscribeForNonUserWithPagination() {
//given
int size = 2;
boolean hasNext = true;
var request = ArtistRequestDtoFixture.artistUnsubscriptionPaginationServiceRequest(size);

given(
artistUseCase.findAllArtistInCursorPagination(
request.toNonUserDomainRequest())
).willReturn(
ArtistResponseDtoFixture.artistPaginationDomainResponse(size, hasNext)
);

//when
var result = artistService.findArtistUnsubscriptionsForNonUser(request);

//then
SoftAssertions.assertSoftly(
soft -> {
soft.assertThat(result.data().size()).isEqualTo(size);
soft.assertThat(result.hasNext()).isEqualTo(hasNext);
}
);
}
}

0 comments on commit 3fa96da

Please sign in to comment.