de.sonallux.spotify.api.apis.artists.GetArtistsAlbumsRequest Maven / Gradle / Ivy
Show all versions of spotify-web-api-java Show documentation
package de.sonallux.spotify.api.apis.artists;
import com.fasterxml.jackson.core.type.TypeReference;
import de.sonallux.spotify.api.http.ApiCall;
import de.sonallux.spotify.api.http.ApiClient;
import de.sonallux.spotify.api.http.Request;
import de.sonallux.spotify.api.models.*;
/**
* Get Artist's Albums request
*
* Response
* Pages of albums
*/
public class GetArtistsAlbumsRequest {
private static final TypeReference> RESPONSE_TYPE = new TypeReference<>() {};
private final ApiClient apiClient;
private final Request request;
/**
* Get Artist's Albums request
* @param apiClient The API client
* @param id The Spotify ID of the artist.
*/
public GetArtistsAlbumsRequest(ApiClient apiClient, String id) {
this.apiClient = apiClient;
this.request = new Request("GET", "/artists/{id}/albums")
.addPathParameter("id", String.valueOf(id))
;
}
/**
* @param includeGroups A comma-separated list of keywords that will be used to filter the response. If not supplied, all album types will be returned.
Valid values are:
- album
- single
- appears_on
- compilation
For example: include_groups=album,single
.
* @return this request
*/
public GetArtistsAlbumsRequest includeGroups(String includeGroups) {
this.request.addQueryParameter("include_groups", String.valueOf(includeGroups));
return this;
}
/**
* @param market An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that is available in that market will be returned.
If a valid user access token is specified in the request header, the country associated with the user account will take priority over this parameter.
Note: If neither market or user country are provided, the content is considered unavailable for the client.
Users can view the country that is associated with their account in the account settings.
* @return this request
*/
public GetArtistsAlbumsRequest market(String market) {
this.request.addQueryParameter("market", String.valueOf(market));
return this;
}
/**
* @param limit The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.
* @return this request
*/
public GetArtistsAlbumsRequest limit(int limit) {
this.request.addQueryParameter("limit", String.valueOf(limit));
return this;
}
/**
* @param offset The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items.
* @return this request
*/
public GetArtistsAlbumsRequest offset(int offset) {
this.request.addQueryParameter("offset", String.valueOf(offset));
return this;
}
/**
* Build the request into an executable api call
* @return an executable api call
*/
public ApiCall> build() {
return apiClient.createApiCall(request, RESPONSE_TYPE);
}
}