Skip to content

Commit 487ca25

Browse files
committed
Updated all requests
1 parent c6bff08 commit 487ca25

File tree

5 files changed

+334
-73
lines changed

5 files changed

+334
-73
lines changed

src/main/java/com/spotify/requests/search/SearchGet.java

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,56 @@
11
package com.spotify.requests.search;
22

3-
import com.spotify.json.JSONObject;
43
import com.spotify.requests.AbstractRequest;
5-
import com.spotify.requests.RequestQuery;
6-
import com.spotify.requests.util.ParameterPairBuilder;
4+
import com.spotify.requests.SpotifyRequest;
5+
import com.spotify.requests.SpotifyRequestField;
6+
import com.spotify.requests.util.Market;
77

8+
9+
@SpotifyRequest("search")
810
public class SearchGet extends AbstractRequest {
911

10-
private final static String URL = "search/";
12+
@SpotifyRequestField
13+
private final String q;
14+
15+
@SpotifyRequestField
16+
private final String type;
17+
18+
@SpotifyRequestField
19+
private String include_external;
1120

21+
@SpotifyRequestField
22+
private int limit;
23+
24+
@SpotifyRequestField
25+
private Market market;
26+
27+
@SpotifyRequestField
28+
private int offset;
1229

1330
public SearchGet(String q, String type) {
14-
super(new ParameterPairBuilder()
15-
.addKeys("q", "type", "include_external", "limit", "market", "offset")
16-
.addClasses(String.class, String.class, String.class, Integer.class, Integer.class)
17-
.build());
18-
super.addQuery(new RequestQuery<>("q", q));
19-
super.addQuery(new RequestQuery<>("type", type));
31+
this.q = q;
32+
this.type = type;
33+
this.include_external = null;
34+
this.limit = -1;
35+
this.market = null;
36+
this.offset = -1;
37+
}
38+
39+
40+
public void setIncludeExternal(String s) {
41+
this.include_external = s;
42+
}
43+
44+
public void setLimit(int limit) {
45+
this.limit = Math.max(0, Math.min(limit, 50));
46+
}
2047

48+
public void setMarket(Market market) {
49+
this.market = market;
2150
}
2251

23-
@Override
24-
public JSONObject execute(String token) {
25-
return super.requestGet(token, URL);
52+
public void setOffset(int offset) {
53+
this.offset = Math.max(0, Math.min(offset, 1000));
2654
}
2755

2856

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,25 @@
11
package com.spotify.requests.tracks;
22

3-
import com.spotify.json.JSONObject;
43
import com.spotify.requests.AbstractRequest;
5-
import com.spotify.requests.RequestQuery;
6-
import com.spotify.requests.util.ParameterPair;
7-
import com.spotify.util.Util;
8-
4+
import com.spotify.requests.SpotifyRequest;
5+
import com.spotify.requests.SpotifyRequestField;
96

107
/**
118
* Get audio features for multiple tracks based on their Spotify IDs.
129
* <a href="https://developer.spotify.com/documentation/web-api/reference/#/operations/get-several-audio-features">Spotify Docs</a>
1310
*/
11+
12+
@SpotifyRequest("audio-features")
1413
public class SeveralTrackAudioFeaturesGet extends AbstractRequest {
1514

16-
private final static String URL = "audio-features/";
1715

18-
/**
19-
* @param tracks The array of tracks to query
20-
*/
21-
public SeveralTrackAudioFeaturesGet(String... tracks) {
22-
super(new ParameterPair("ids", String.class));
23-
super.addQuery(new RequestQuery<>("ids", Util.join(tracks, ",")));
24-
}
16+
@SpotifyRequestField
17+
private final String[] ids;
2518

26-
@Override
27-
public JSONObject execute(String token) {
28-
return super.requestGet(token, URL);
19+
20+
public SeveralTrackAudioFeaturesGet(String... ids) {
21+
this.ids = ids;
2922
}
23+
24+
3025
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
11
package com.spotify.requests.tracks;
22

3-
import com.spotify.json.JSONObject;
43
import com.spotify.requests.AbstractRequest;
4+
import com.spotify.requests.SpotifyRequest;
5+
import com.spotify.requests.SpotifySubRequest;
56

67

78
/**
89
* Get a low-level audio analysis for a track in the Spotify catalog. The audio analysis describes the track’s structure and musical content, including rhythm, pitch, and timbre.
910
* <a href="https://developer.spotify.com/documentation/web-api/reference/#/operations/get-audio-analysis">Spotify Docs</a>
1011
*/
12+
@SpotifyRequest("audio-analysis")
1113
public class TrackAudioAnalysisGet extends AbstractRequest {
1214

13-
private final static String URL = "audio-analysis/{id}/";
1415

16+
@SpotifySubRequest
1517
private final String id;
1618

1719
/**
1820
* @param token The token of the related spotify api session
1921
* @param id The id of the track to be queried
2022
*/
2123
public TrackAudioAnalysisGet(String id) {
22-
super();
2324
this.id = id;
2425
}
2526

26-
@Override
27-
public JSONObject execute(String token) {
28-
return super.requestGet(token, URL.replace("{id}", this.id));
29-
}
3027
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
11
package com.spotify.requests.tracks;
22

3-
import com.spotify.json.JSONObject;
43
import com.spotify.requests.AbstractRequest;
4+
import com.spotify.requests.SpotifyRequest;
5+
import com.spotify.requests.SpotifySubRequest;
56

67

78
/**
89
* Get audio feature information for a single track identified by its unique Spotify ID.
910
* <a href="https://developer.spotify.com/documentation/web-api/reference/#/operations/get-audio-features">Spotify Docs</a>
1011
*/
12+
@SpotifyRequest("audio-features")
1113
public class TrackAudioFeaturesGet extends AbstractRequest {
1214

13-
private final static String URL = "audio-features/{id}/";
1415

16+
@SpotifySubRequest
1517
private final String id;
1618

1719
/**
1820
* @param id The id of the song to get
1921
*/
2022
public TrackAudioFeaturesGet(String id) {
21-
super();
2223
this.id = id;
2324
}
2425

25-
@Override
26-
public JSONObject execute(String token) {
27-
return super.requestGet(token, URL.replace("{id}", this.id));
28-
}
2926
}

0 commit comments

Comments
 (0)