de.sonallux.spotify.api.apis.player.GetInformationAboutUsersCurrentPlaybackRequest Maven / Gradle / Ivy
Show all versions of spotify-web-api-java Show documentation
package de.sonallux.spotify.api.apis.player;
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 Playback State request
*
* Required OAuth scopes
* user-read-playback-state
*
* Response
* Information about playback
*/
public class GetInformationAboutUsersCurrentPlaybackRequest {
private static final TypeReference RESPONSE_TYPE = new TypeReference<>() {};
private final ApiClient apiClient;
private final Request request;
/**
* Get Playback State request
* @param apiClient The API client
*/
public GetInformationAboutUsersCurrentPlaybackRequest(ApiClient apiClient) {
this.apiClient = apiClient;
this.request = new Request("GET", "/me/player")
;
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 GetInformationAboutUsersCurrentPlaybackRequest market(String market) {
this.request.addQueryParameter("market", String.valueOf(market));
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 GetInformationAboutUsersCurrentPlaybackRequest 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);
}
}