Skip to content

Commit 43efc80

Browse files
committed
feat: create PagingDeezerRequest
1 parent b2af11f commit 43efc80

4 files changed

Lines changed: 21 additions & 10 deletions

File tree

src/main/java/io/github/yvasyliev/deezer/factory/AlbumRequestFactory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.github.yvasyliev.deezer.request.DeezerRequest;
77
import io.github.yvasyliev.deezer.request.GetByIdDeezerRequest;
88
import io.github.yvasyliev.deezer.request.GetByIdPagingDeezerRequest;
9+
import io.github.yvasyliev.deezer.request.PagingDeezerRequest;
910
import io.github.yvasyliev.deezer.service.AlbumService;
1011
import lombok.RequiredArgsConstructor;
1112

@@ -32,7 +33,7 @@ public DeezerRequest<Album> getAlbum(long albumId) {
3233
* @param albumId album ID
3334
* @return list of album's fans
3435
*/
35-
public GetByIdPagingDeezerRequest<User> getAlbumFans(long albumId) {
36+
public PagingDeezerRequest<User> getAlbumFans(long albumId) {
3637
return new GetByIdPagingDeezerRequest<>(albumId, albumService::getAlbumFans);
3738
}
3839

@@ -42,7 +43,7 @@ public GetByIdPagingDeezerRequest<User> getAlbumFans(long albumId) {
4243
* @param albumId album ID
4344
* @return list of album's tracks
4445
*/
45-
public GetByIdPagingDeezerRequest<Track> getAlbumTracks(long albumId) {
46+
public PagingDeezerRequest<Track> getAlbumTracks(long albumId) {
4647
return new GetByIdPagingDeezerRequest<>(albumId, albumService::getAlbumTracks);
4748
}
4849
}

src/main/java/io/github/yvasyliev/deezer/factory/ArtistRequestFactory.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.github.yvasyliev.deezer.request.DeezerRequest;
99
import io.github.yvasyliev.deezer.request.GetByIdDeezerRequest;
1010
import io.github.yvasyliev.deezer.request.GetByIdPagingDeezerRequest;
11+
import io.github.yvasyliev.deezer.request.PagingDeezerRequest;
1112
import io.github.yvasyliev.deezer.service.ArtistService;
1213
import lombok.RequiredArgsConstructor;
1314

@@ -24,7 +25,7 @@ public class ArtistRequestFactory {
2425
* @param artistId artist ID
2526
* @return list of artist's albums
2627
*/
27-
public GetByIdPagingDeezerRequest<Album> getAlbums(long artistId) {
28+
public PagingDeezerRequest<Album> getAlbums(long artistId) {
2829
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getAlbums);
2930
}
3031

@@ -44,7 +45,7 @@ public DeezerRequest<Artist> getArtist(long artistId) {
4445
* @param artistId artist ID
4546
* @return list of artist's fans
4647
*/
47-
public GetByIdPagingDeezerRequest<User> getFans(long artistId) {
48+
public PagingDeezerRequest<User> getFans(long artistId) {
4849
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getFans);
4950
}
5051

@@ -54,7 +55,7 @@ public GetByIdPagingDeezerRequest<User> getFans(long artistId) {
5455
* @param artistId artist ID
5556
* @return list of artist's playlists
5657
*/
57-
public GetByIdPagingDeezerRequest<Playlist> getPlaylists(long artistId) {
58+
public PagingDeezerRequest<Playlist> getPlaylists(long artistId) {
5859
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getPlaylists);
5960
}
6061

@@ -64,7 +65,7 @@ public GetByIdPagingDeezerRequest<Playlist> getPlaylists(long artistId) {
6465
* @param artistId artist ID
6566
* @return list of tracks
6667
*/
67-
public GetByIdPagingDeezerRequest<Track> getRadio(long artistId) {
68+
public PagingDeezerRequest<Track> getRadio(long artistId) {
6869
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getRadio);
6970
}
7071

@@ -74,7 +75,7 @@ public GetByIdPagingDeezerRequest<Track> getRadio(long artistId) {
7475
* @param artistId artist ID
7576
* @return list of related artists
7677
*/
77-
public GetByIdPagingDeezerRequest<Artist> getRelated(long artistId) {
78+
public PagingDeezerRequest<Artist> getRelated(long artistId) {
7879
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getRelated);
7980
}
8081

@@ -84,7 +85,7 @@ public GetByIdPagingDeezerRequest<Artist> getRelated(long artistId) {
8485
* @param artistId artist ID
8586
* @return list of artist's top tracks
8687
*/
87-
public GetByIdPagingDeezerRequest<Track> getTop(long artistId) {
88+
public PagingDeezerRequest<Track> getTop(long artistId) {
8889
return new GetByIdPagingDeezerRequest<>(artistId, artistService::getTop);
8990
}
9091
}

src/main/java/io/github/yvasyliev/deezer/request/GetByIdPagingDeezerRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import java.util.concurrent.CompletableFuture;
1010

1111
@RequiredArgsConstructor
12-
@Setter
12+
@Setter(onMethod_ = @Override)
1313
@Accessors(fluent = true)
14-
public class GetByIdPagingDeezerRequest<T> extends AbstractDeezerRequest<Page<T>> {
14+
public class GetByIdPagingDeezerRequest<T> extends AbstractDeezerRequest<Page<T>> implements PagingDeezerRequest<T> {
1515
private final long objectId;
1616
private final TriFunction<Long, Integer, Integer, CompletableFuture<Page<T>>> asyncMethod;
1717
private Integer index;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.github.yvasyliev.deezer.request;
2+
3+
import io.github.yvasyliev.deezer.model.Page;
4+
5+
public interface PagingDeezerRequest<T> extends DeezerRequest<Page<T>> {
6+
PagingDeezerRequest<T> index(Integer index);
7+
8+
PagingDeezerRequest<T> limit(Integer limit);
9+
}

0 commit comments

Comments
 (0)