Skip to content

Commit 4f782a8

Browse files
committed
feat: create GenreService
1 parent d2421b8 commit 4f782a8

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package io.github.yvasyliev.deezer.service;
2+
3+
import feign.Headers;
4+
import feign.Param;
5+
import feign.RequestLine;
6+
import io.github.yvasyliev.deezer.model.Artist;
7+
import io.github.yvasyliev.deezer.model.Genre;
8+
import io.github.yvasyliev.deezer.model.Page;
9+
import io.github.yvasyliev.deezer.model.Radio;
10+
11+
import java.util.concurrent.CompletableFuture;
12+
13+
@Headers("Accept: application/json")
14+
public interface GenreService {
15+
/**
16+
* Returns all artists for a genre.
17+
*
18+
* @param genreId the genre ID
19+
* @return all artists for a genre
20+
*/
21+
@RequestLine("GET /genre/{genreId}/artists")
22+
CompletableFuture<Page<Artist>> getArtists(@Param("genreId") int genreId);
23+
24+
@RequestLine("GET /genre/{genreId}")
25+
CompletableFuture<Genre> getGenre(@Param("genreId") int genreId);
26+
27+
@RequestLine("GET /genre")
28+
CompletableFuture<Page<Genre>> getGenres();
29+
30+
//TODO: get podcasts
31+
32+
@RequestLine("GET /genre/{genreId}/radios")
33+
CompletableFuture<Page<Radio>> getRadios(@Param("genreId") int genreId);
34+
}

0 commit comments

Comments
 (0)