Skip to content

Commit

Permalink
#106 show all the tracks existing
Browse files Browse the repository at this point in the history
  • Loading branch information
unknown authored and unknown committed Feb 21, 2024
1 parent b010c39 commit c9a0e0e
Showing 1 changed file with 26 additions and 27 deletions.
53 changes: 26 additions & 27 deletions force-app/main/default/classes/service/SyncTrack.cls
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,15 @@ public class SyncTrack {
cred.ClientId__c,
cred.ClientSecret__c
);

if (token.getStatusCode() != SpotifyApiHttpClient.SUCCESS_STATUS_CODE)
continue;

HttpResponse tracksRes = getTracksResponse(token, cred);

if (tracksRes.getStatusCode() != SpotifyApiHttpClient.SUCCESS_STATUS_CODE)
continue;

TrackResponse tracksResult = TrackResponse.parse(tracksRes.getBody());

for (ItemTrack item : tracksResult.items) {

SimplefieldTracksObject track = item.track;
List<SimplefieldTracksObject> tracks = getTracksList(
TokenResponse.parse(token.getBody()).access_token,
cred.SpotifyUserId__c);

for (SimplefieldTracksObject track : tracks) {

if (!recordsToUpsertTracksMap.containsKey(track.id)) {

Expand All @@ -41,36 +36,34 @@ public class SyncTrack {
Name = track.name,
Popularity__c = track.popularity
);

recordsToUpsertTracksMap.put(track.id, trackRecord);
}
}
}

if (!recordsToUpsertTracksMap.isEmpty()) {
upsert recordsToUpsertTracksMap.values() SpotifyId__c;
}

} catch (Exception error) {
Spotify_Request_Log__e errorEvent = new Spotify_Request_Log__e(
ApexError__c = error.getMessage()
);
);
errorEventResult = EventBus.publish(errorEvent);
}
}

private static HttpResponse getTracksResponse(HttpResponse token, ClientCredential__c cred) {
private static List<SimplefieldTracksObject> getTracksList(String token, String spotifyUserId) {

HttpResponse trackRes;
List<SimplefieldTracksObject> result = new List<SimplefieldTracksObject>();
PlaylistResponse playlists;
Integer cont = 0;
TokenResponse tokenRes = TokenResponse.parse(token.getBody());


do {

HttpResponse playlistsRes = SpotifyApiHttpClient.getPlaylist(
tokenRes.access_token,
cred.SpotifyUserId__c,
token,
spotifyUserId,
cont
);

Expand All @@ -81,15 +74,21 @@ public class SyncTrack {

for (SimplefiedPlaylistObject playlist : playlists.items) {

trackRes = SpotifyApiHttpClient.getTrack(
tokenRes.access_token,
playlist.id
);
HttpResponse trackRes = SpotifyApiHttpClient.getTrack(token, playlist.id);

if (trackRes.getStatusCode() != SpotifyApiHttpClient.SUCCESS_STATUS_CODE)
continue;

TrackResponse tracks = TrackResponse.parse(trackRes.getBody());

for (ItemTrack item : tracks.items) {
result.add(item.track);
}
}
cont += playlists.items.size();

} while (cont < playlists.total);
return trackRes;

return result;
}
}

0 comments on commit c9a0e0e

Please sign in to comment.