Skip to content

Commit 885cf26

Browse files
committed
Implemented TrackAudioFeatures serialization
1 parent d580cc9 commit 885cf26

File tree

5 files changed

+83
-8
lines changed

5 files changed

+83
-8
lines changed

src/main/java/com/spotify/objects/SpotifyOptional.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.lang.annotation.RetentionPolicy;
66
import java.lang.annotation.Target;
77

8-
@Target(ElementType.FIELD)
8+
@Target({ElementType.FIELD, ElementType.TYPE})
99
@Retention(RetentionPolicy.RUNTIME)
1010
public @interface SpotifyOptional {
1111

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.spotify.objects.tracks;
2+
3+
4+
import com.spotify.objects.SpotifyField;
5+
import com.spotify.objects.SpotifyObject;
6+
import com.spotify.objects.SpotifyOptional;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import lombok.ToString;
10+
11+
@Getter
12+
@Setter
13+
@ToString
14+
@SpotifyOptional
15+
public class TrackAudioFeatures implements SpotifyObject {
16+
17+
@SpotifyField
18+
private double acousticness;
19+
20+
@SpotifyField("analysis_url")
21+
private String analysisUrl;
22+
23+
@SpotifyField
24+
private double danceability;
25+
26+
@SpotifyField("duration_ms")
27+
private int duration;
28+
29+
@SpotifyField
30+
private double energy;
31+
32+
@SpotifyField
33+
private String id;
34+
35+
@SpotifyField
36+
private double instrumentalness;
37+
38+
@SpotifyField
39+
private int key;
40+
41+
@SpotifyField
42+
private double liveness;
43+
44+
@SpotifyField
45+
private double loudness;
46+
47+
@SpotifyField
48+
private int mode;
49+
50+
@SpotifyField
51+
private double speechiness;
52+
53+
@SpotifyField
54+
private double tempo;
55+
56+
@SpotifyField("time_signature")
57+
private int timeSignature;
58+
59+
@SpotifyField("track_href")
60+
private String trackHref;
61+
62+
@SpotifyField
63+
private String type;
64+
65+
@SpotifyField
66+
private String uri;
67+
68+
@SpotifyField
69+
private double valence;
70+
71+
72+
}

src/main/java/com/spotify/requests/AbstractRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ protected final RequestResponse requestGet(String token, String url) {
8484

8585
return new RequestResponse(content, code, s);
8686

87-
8887
} catch (NullPointerException e) {
8988
e.printStackTrace();
9089
return null;
@@ -98,6 +97,7 @@ public SpotifyResponse execute(String token) {
9897

9998
RequestResponse rresponse = this.requestGet(token, urlQuery);
10099
SpotifySerialize ms = this.getClass().getAnnotation(SpotifySerialize.class);
100+
if (ms == null) return null;
101101
SpotifyRequest request = this.getClass().getAnnotation(SpotifyRequest.class);
102102
Class<? extends SpotifyObject> cls = ms.value();
103103
SpotifyResponse response;

src/main/java/com/spotify/requests/tracks/TrackAudioFeaturesGet.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.spotify.requests.tracks;
22

3+
import com.spotify.objects.SpotifySerialize;
4+
import com.spotify.objects.tracks.TrackAudioFeatures;
35
import com.spotify.requests.AbstractRequest;
46
import com.spotify.requests.SpotifyRequest;
57
import com.spotify.requests.SpotifySubRequest;
@@ -10,6 +12,7 @@
1012
* <a href="https://developer.spotify.com/documentation/web-api/reference/#/operations/get-audio-features">Spotify Docs</a>
1113
*/
1214
@SpotifyRequest("audio-features")
15+
@SpotifySerialize(TrackAudioFeatures.class)
1316
public class TrackAudioFeaturesGet extends AbstractRequest {
1417

1518

src/test/java/com/spotify/Main.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package com.spotify;
22

3-
import com.spotify.objects.tracks.Track;
4-
import com.spotify.requests.tracks.SeveralTracksGet;
5-
import com.spotify.requests.tracks.TrackGet;
3+
import com.spotify.objects.tracks.TrackAudioFeatures;
4+
import com.spotify.requests.tracks.TrackAudioFeaturesGet;
65

76
public class Main {
87

@@ -11,16 +10,17 @@ public static void main(String[] args) throws IllegalAccessException {
1110
SpotifyClient sc = new SpotifyClientBuilderTester().getBuiltClient();
1211

1312

14-
SeveralTracksGet severalTracksGet = new SeveralTracksGet("05lBXOMA1uHpVPEQZyjoh3", "4CeeEOM32jQcH3eN9Q2dGj");
15-
TrackGet trackGet = new TrackGet("1ljziaoMnRH95aPeOSGAtr1");
13+
// SeveralTracksGet severalTracksGet = new SeveralTracksGet("05lBXOMA1uHpVPEQZyjoh3", "4CeeEOM32jQcH3eN9Q2dGj");
14+
TrackAudioFeaturesGet trackGet = new TrackAudioFeaturesGet("05lBXOMA1uHpVPEQZyjoh3");
1615

1716

1817
// SpotifyResponse sr = sc.executeRequest(severalTracksGet);
1918
SpotifyResponse trackResponse = sc.executeRequest(trackGet);
2019

2120

2221
// Track[] tracks = sr.getSerialisedObjects();
23-
Track[] track = trackResponse.getSerialisedObjects();
22+
TrackAudioFeatures track = trackResponse.getSerialisedObject();
23+
2424

2525
// System.out.println(Arrays.toString(tracks));
2626
System.out.println(track);

0 commit comments

Comments
 (0)