@@ -116,7 +116,7 @@ private static Album createAlbum(JSONObject albumJson) {
116116 album .setName (albumJson .getString ("name" ));
117117 album .setPopularity (albumJson .getInt ("popularity" ));
118118 album .setReleaseDate (createReleaseDate (albumJson .getJSONObject ("release_date" )));
119- album .setTracks (createSimpleTracks (albumJson .getJSONArray ("tracks" )));
119+ album .setTracks (createSimpleTrackPage (albumJson .getJSONObject ("tracks" )));
120120 album .setType (createSpotifyEntityType (albumJson .getString ("type" )));
121121 album .setUri (albumJson .getString ("uri" ));
122122
@@ -154,12 +154,16 @@ public static ReleaseDate createReleaseDate(JSONObject releaseDateJson) {
154154 ReleaseDate releaseDate = new ReleaseDate ();
155155
156156 releaseDate .setYear (releaseDateJson .getInt ("year" ));
157- if (!releaseDateJson .getJSONObject ("month" ).isNullObject ( )) {
157+ if (releaseDateJson . has ( "month" ) && !releaseDateJson .get ("month" ).equals ( "null" )) {
158158 releaseDate .setMonth (releaseDateJson .getInt ("month" ));
159+ } else {
160+ releaseDate .setMonth (null );
159161 }
160162
161- if (!releaseDateJson .getJSONObject ("date" ).isNullObject ()) {
162- releaseDate .setDate (releaseDateJson .getInt ("date" ));
163+ if (releaseDateJson .has ("day" ) && !releaseDateJson .get ("day" ).equals ("null" )) {
164+ releaseDate .setDate (releaseDateJson .getInt ("day" ));
165+ } else {
166+ releaseDate .setDate (null );
163167 }
164168
165169 return releaseDate ;
@@ -191,7 +195,7 @@ public static SimpleAlbum createSimpleAlbum(JSONObject simpleAlbumJson) {
191195 simpleAlbum .setImages (createImages (simpleAlbumJson .getJSONArray ("images" )));
192196 simpleAlbum .setName (simpleAlbumJson .getString ("name" ));
193197 simpleAlbum .setType (createSpotifyEntityType (simpleAlbumJson .getString ("type" )));
194- simpleAlbum .setUri (simpleAlbumJson .getString ("type " ));
198+ simpleAlbum .setUri (simpleAlbumJson .getString ("uri " ));
195199
196200 return simpleAlbum ;
197201 }
@@ -211,6 +215,14 @@ public static List<Album> createAlbums(JSONArray jsonArray) {
211215 return returnedAlbums ;
212216 }
213217
218+ public static List <SimpleAlbum > createSimpleAlbums (JSONArray jsonArray ) {
219+ List <SimpleAlbum > returnedAlbums = new ArrayList <SimpleAlbum >();
220+ for (int i = 0 ; i < jsonArray .size (); i ++) {
221+ returnedAlbums .add (createSimpleAlbum (jsonArray .getJSONObject (i )));
222+ }
223+ return returnedAlbums ;
224+ }
225+
214226 public static SimpleArtist createSimpleArtist (JSONObject simpleArtistJson ) {
215227 if (simpleArtistJson == null || simpleArtistJson .isNullObject ()) {
216228 return null ;
@@ -303,8 +315,8 @@ public static Page<Album> createAlbumPage(String albumPageJson) {
303315 }
304316
305317 public static Page <Album > createAlbumPage (JSONObject albumPageJson ) {
306- Page page = createItemlessPage (albumPageJson );
307- page .setItems (createAlbums (albumPageJson .getJSONArray ("items" )));
318+ Page page = createItemlessPage (albumPageJson . getJSONObject ( "albums" ) );
319+ page .setItems (createAlbums (albumPageJson .getJSONObject ( "albums" ). getJSONArray ("items" )));
308320 return page ;
309321 }
310322
@@ -328,8 +340,8 @@ public static Page<Track> createTrackPage(String trackPageJson) {
328340 }
329341
330342 public static Page <Track > createTrackPage (JSONObject trackPageJson ) {
331- Page page = createItemlessPage (trackPageJson );
332- page .setItems (createTracks (trackPageJson .getJSONArray ("items" )));
343+ Page page = createItemlessPage (trackPageJson . getJSONObject ( "tracks" ) );
344+ page .setItems (createTracks (trackPageJson .getJSONObject ( "tracks" ). getJSONArray ("items" )));
333345 return page ;
334346 }
335347
@@ -343,6 +355,22 @@ public static Page<Artist> createArtistPage(JSONObject artistPageJson) {
343355 return page ;
344356 }
345357
358+ private static Page <SimpleTrack > createSimpleTrackPage (JSONObject simpleTrackPageJson ) {
359+ Page page = createItemlessPage (simpleTrackPageJson );
360+ page .setItems (createSimpleTracks (simpleTrackPageJson .getJSONArray ("items" )));
361+ return page ;
362+ }
363+
364+ public static Page <SimpleAlbum > createSimpleAlbumPage (String simpleAlbumPageJson ) {
365+ return createSimpleAlbumPage (JSONObject .fromObject (simpleAlbumPageJson ));
366+ }
367+
368+ public static Page <SimpleAlbum > createSimpleAlbumPage (JSONObject simpleAlbumPageJson ) {
369+ Page page = createItemlessPage (simpleAlbumPageJson );
370+ page .setItems (createSimpleAlbums (simpleAlbumPageJson .getJSONArray ("items" )));
371+ return page ;
372+ }
373+
346374 public static User createUser (String userJson ) {
347375 return createUser (JSONObject .fromObject (userJson ));
348376 }
@@ -376,4 +404,5 @@ public static User createUser(JSONObject userJson) {
376404 private static Product createProduct (String product ) {
377405 return Product .valueOf (product .toUpperCase ());
378406 }
407+
379408}
0 commit comments