Skip to content

Commit 90c3f95

Browse files
committed
Extract music platform-agnostic code into repository base for artists and setlists/songs
1 parent f689b20 commit 90c3f95

27 files changed

Lines changed: 231 additions & 259 deletions

api/src/main/java/xyz/arnau/setlisttoplaylist/application/PlaylistService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Playlist createFromSetlist(String setlistId, boolean isPublic, String aut
3636
.name(fillData(PLAYLIST_NAME, setlist))
3737
.description(fillData(PLAYLIST_DESCRIPTION, setlist))
3838
.isPublic(isPublic)
39-
.songIds(setlist.songs().stream().map(Song::id).filter(Objects::nonNull).collect(toList()))
39+
.songIds(setlist.songs().stream().map(Song::musicPlatformId).filter(Objects::nonNull).collect(toList()))
4040
.coverImage(playlistImageGenerator.generateImage(setlist))
4141
.build();
4242
return playlistRepository.create(command, authorizationHeader);

api/src/main/java/xyz/arnau/setlisttoplaylist/domain/dto/CreatePlaylistCommand.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
import java.util.List;
66

77
@Builder
8-
public record CreatePlaylistCommand(String name, String description, boolean isPublic, List<String> songIds,
9-
byte[] coverImage) {
10-
}
8+
public record CreatePlaylistCommand(
9+
String name,
10+
String description,
11+
boolean isPublic,
12+
List<String> songIds,
13+
byte[] coverImage
14+
) {}

api/src/main/java/xyz/arnau/setlisttoplaylist/domain/entities/Artist.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
@Builder
66
public record Artist(
7+
String musicPlatformId,
78
String name,
89
String imageUrl
910
) {}

api/src/main/java/xyz/arnau/setlisttoplaylist/domain/entities/Playlist.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44

55
@Builder
66
public record Playlist(
7-
String id
7+
String musicPlatformId
88
) {
99
}

api/src/main/java/xyz/arnau/setlisttoplaylist/domain/entities/Song.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
@Builder
66
public record Song(
7-
String id,
7+
String musicPlatformId,
88
String name,
99
String albumName,
1010
String albumCoverUrl,
1111
int durationSeconds,
1212
String previewUrl,
13-
String originalArtist
13+
String originalArtistName
1414
) {}

api/src/main/java/xyz/arnau/setlisttoplaylist/infrastructure/controller/response/ArtistResponse.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44

5-
@Schema(requiredProperties = {"name", "imageUrl"})
5+
@Schema(requiredProperties = {"musicPlatformId", "name", "imageUrl"})
66
public record ArtistResponse(
7+
@Schema(description = "Music platform artist ID", example = "7mnBLXK823vNxN3UWB7Gfz")
8+
String musicPlatformId,
79
@Schema(description = "Artist name", example = "The Black Keys")
810
String name,
911
@Schema(description = "URL of artist image", example = "https://i.scdn.co/image/ab6761610000e5ebae537808bd15be9f7031e99b")

api/src/main/java/xyz/arnau/setlisttoplaylist/infrastructure/controller/response/PlaylistResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44

5-
@Schema(requiredProperties = {"id"})
5+
@Schema(requiredProperties = {"musicPlatformId"})
66
public record PlaylistResponse(
7-
@Schema(description = "Playlist ID", example = "0MH3Wi1Fxdv08IGIgwADPh")
8-
String id
7+
@Schema(description = "Music platform playlist ID", example = "0MH3Wi1Fxdv08IGIgwADPh")
8+
String musicPlatformId
99
) {
1010
}

api/src/main/java/xyz/arnau/setlisttoplaylist/infrastructure/controller/response/SongResponse.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44

5-
@Schema(requiredProperties = {"id", "name", "albumName", "albumCoverUrl", "durationSeconds", "previewUrl"})
5+
@Schema(requiredProperties = {"musicPlatformId", "name", "albumName", "albumCoverUrl", "durationSeconds", "previewUrl"})
66
public record SongResponse(
7-
@Schema(description = "Platform track ID", example = "5G1sTBGbZT5o4PNRc75RKI")
8-
String id,
7+
@Schema(description = "Music platform song ID", example = "5G1sTBGbZT5o4PNRc75RKI")
8+
String musicPlatformId,
99
@Schema(description = "Song name", example = "Lonely Boy")
1010
String name,
1111
@Schema(description = "Album name", example = "El Camino")
@@ -17,6 +17,6 @@ public record SongResponse(
1717
@Schema(description = "Song preview URL", example = "https://p.scdn.co/mp3-preview/2ad81dc04cb1e29388f918bbf948b5f812632131?cid=ed16feb3c955427dab52122d2515a642")
1818
String previewUrl,
1919
@Schema(description = "Name of the original artist (if song is a cover; null, otherwise)", nullable = true)
20-
String originalArtist
20+
String originalArtistName
2121
) {
2222
}

api/src/main/java/xyz/arnau/setlisttoplaylist/infrastructure/repository/SetlistFmSongMapper.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

api/src/main/java/xyz/arnau/setlisttoplaylist/infrastructure/repository/SpotifyArtistRepository.java

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)