de.sonallux.spotify.api.apis.users.GetUsersTopArtistsRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spotify-web-api-java Show documentation
Show all versions of spotify-web-api-java Show documentation
A Java wrapper for Spotify's Web API
The newest version!
package de.sonallux.spotify.api.apis.users;
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 User's Top Artists request
*
* Required OAuth scopes
* user-top-read
*
* Response
* Pages of artists
*/
public class GetUsersTopArtistsRequest {
private static final TypeReference> RESPONSE_TYPE = new TypeReference<>() {};
private final ApiClient apiClient;
private final Request request;
/**
* Get User's Top Artists request
* @param apiClient The API client
*/
public GetUsersTopArtistsRequest(ApiClient apiClient) {
this.apiClient = apiClient;
this.request = new Request("GET", "/me/top/artists")
;
}
/**
* @param timeRange Over what time frame the affinities are computed. Valid values: long_term
(calculated from ~1 year of data and including all new data as it becomes available), medium_term
(approximately last 6 months), short_term
(approximately last 4 weeks). Default: medium_term
* @return this request
*/
public GetUsersTopArtistsRequest timeRange(String timeRange) {
this.request.addQueryParameter("time_range", String.valueOf(timeRange));
return this;
}
/**
* @param limit The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.
* @return this request
*/
public GetUsersTopArtistsRequest 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 GetUsersTopArtistsRequest 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);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy