Skip to content

Commit

Permalink
-#96 the artist and track they must be linked
Browse files Browse the repository at this point in the history
  • Loading branch information
unknown authored and unknown committed Feb 22, 2024
1 parent 86bfa8c commit a6a35f5
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,28 @@ public class SimplefieldTracksObject {
public String name;
public Integer popularity;
public String preview_url;

public static SimplefieldTracksObject parse(String jsonBody) {
return (SimplefieldTracksObject) JSON.deserialize(jsonBody, SimplefieldTracksObject.class);
}

public List<TrackArtist__c> getTrackArtist() {

List<TrackArtist__c> result = new List<TrackArtist__c>();

for (SimplefieldArtistObject artist : this.artists) {

TrackArtist__c trackArtistRecord = new TrackArtist__c(
Track__r = new Track__c(
SpotifyId__c = id
),
Artist__r = new Artist__c(
SpotifyId__c = artist.id
)
);
result.add(trackArtistRecord);
}

return result;
}
}
7 changes: 7 additions & 0 deletions force-app/main/default/classes/service/SyncTrack.cls
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public class SyncTrack {

try {
Map<String, Track__c> recordsToUpsertTracksMap = new Map<String, Track__c>();
List<TrackArtist__c> trackArtistList = new List<TrackArtist__c>();

for (ClientCredential__c cred : credentials) {

Expand All @@ -23,6 +24,8 @@ public class SyncTrack {

for (SimplefieldTracksObject track : tracks) {

trackArtistList.addAll(track.getTrackArtist());

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

Track__c trackRecord = new Track__c(
Expand All @@ -46,6 +49,10 @@ public class SyncTrack {
upsert recordsToUpsertTracksMap.values() SpotifyId__c;
}

if (!trackArtistList.isEmpty()) {
insert trackArtistList;
}

} catch (Exception error) {
Spotify_Request_Log__e errorEvent = new Spotify_Request_Log__e(
ApexError__c = error.getMessage()
Expand Down

0 comments on commit a6a35f5

Please sign in to comment.