de.sonallux.spotify.api.apis.playlists.GetPlaylistRequest Maven / Gradle / Ivy
Show all versions of spotify-web-api-java Show documentation
package de.sonallux.spotify.api.apis.playlists;
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 Playlist request
*
* Response
* A playlist
*/
public class GetPlaylistRequest {
private static final TypeReference RESPONSE_TYPE = new TypeReference<>() {};
private final ApiClient apiClient;
private final Request request;
/**
* Get Playlist request
* @param apiClient The API client
* @param playlistId The Spotify ID of the playlist.
*/
public GetPlaylistRequest(ApiClient apiClient, String playlistId) {
this.apiClient = apiClient;
this.request = new Request("GET", "/playlists/{playlist_id}")
.addPathParameter("playlist_id", String.valueOf(playlistId))
;
this.additionalTypes("track,episode");
}
/**
* @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 GetPlaylistRequest market(String market) {
this.request.addQueryParameter("market", String.valueOf(market));
return this;
}
/**
* @param fields Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are returned. For example, to get just the playlist''s description and URI: fields=description,uri
. A dot separator can be used to specify non-reoccurring fields, while parentheses can be used to specify reoccurring fields within objects. For example, to get just the added date and user ID of the adder: fields=tracks.items(added_at,added_by.id)
. Use multiple parentheses to drill down into nested objects, for example: fields=tracks.items(track(name,href,album(name,href)))
. Fields can be excluded by prefixing them with an exclamation mark, for example: fields=tracks.items(track(name,href,album(!name,href)))
* @return this request
*/
public GetPlaylistRequest fields(String fields) {
this.request.addQueryParameter("fields", String.valueOf(fields));
return this;
}
/**
* @param additionalTypes A comma-separated list of item types that your client supports besides the default track
type. Valid types are: track
and episode
.
Note: This parameter was introduced to allow existing clients to maintain their current behaviour and might be deprecated in the future.
In addition to providing this parameter, make sure that your client properly handles cases of new types in the future by checking against the type
field of each object.
* @return this request
*/
public GetPlaylistRequest additionalTypes(String additionalTypes) {
this.request.addQueryParameter("additional_types", String.valueOf(additionalTypes));
return this;
}
/**
* Build the request into an executable api call
* @return an executable api call
*/
public ApiCall build() {
return apiClient.createApiCall(request, RESPONSE_TYPE);
}
}