Add methods to Playlist model

Also, don't load genres for Playlists tracks (not necessary for now)
This commit is contained in:
Deluan
2021-10-16 22:44:44 -04:00
committed by Deluan Quintão
parent d200933b68
commit c72add516a
7 changed files with 102 additions and 53 deletions
+15 -11
View File
@@ -70,16 +70,9 @@ var (
)
var (
plsBest = model.Playlist{
Name: "Best",
Comment: "No Comments",
Owner: "userid",
Public: true,
SongCount: 2,
Tracks: model.MediaFiles{{ID: "1001"}, {ID: "1003"}},
}
plsCool = model.Playlist{Name: "Cool", Owner: "userid", Tracks: model.MediaFiles{{ID: "1004"}}}
testPlaylists = []*model.Playlist{&plsBest, &plsCool}
plsBest model.Playlist
plsCool model.Playlist
testPlaylists []*model.Playlist
)
func P(path string) string {
@@ -130,6 +123,18 @@ var _ = Describe("Initialize test DB", func() {
}
}
plsBest = model.Playlist{
Name: "Best",
Comment: "No Comments",
Owner: "userid",
Public: true,
SongCount: 2,
}
plsBest.AddTracks([]string{"1001", "1003"})
plsCool = model.Playlist{Name: "Cool", Owner: "userid"}
plsCool.AddTracks([]string{"1004"})
testPlaylists = []*model.Playlist{&plsBest, &plsCool}
pr := NewPlaylistRepository(ctx, o)
for i := range testPlaylists {
err := pr.Put(testPlaylists[i])
@@ -162,6 +167,5 @@ var _ = Describe("Initialize test DB", func() {
songComeTogether.Starred = true
songComeTogether.StarredAt = mf.StarredAt
testSongs[1] = songComeTogether
})
})
+2 -3
View File
@@ -101,7 +101,7 @@ func (r *playlistRepository) Put(p *model.Playlist) error {
if tracks == nil {
return nil
}
return r.updateTracks(id, tracks)
return r.updateTracks(id, p.MediaFiles())
}
func (r *playlistRepository) Get(id string) (*model.Playlist, error) {
@@ -185,9 +185,8 @@ func (r *playlistRepository) loadTracks(pls *dbPlaylist) error {
Where(Eq{"playlist_id": pls.ID}).OrderBy("playlist_tracks.id")
err := r.queryAll(tracksQuery, &pls.Tracks)
if err != nil {
log.Error("Error loading playlist tracks", "playlist", pls.Name, "id", pls.ID)
log.Error(r.ctx, "Error loading playlist tracks", "playlist", pls.Name, "id", pls.ID, err)
}
err = r.loadMediaFileGenres(&pls.Tracks)
return err
}
+7 -7
View File
@@ -58,23 +58,23 @@ var _ = Describe("PlaylistRepository", func() {
pls, err := repo.GetWithTracks(plsBest.ID)
Expect(err).To(BeNil())
Expect(pls.Name).To(Equal(plsBest.Name))
Expect(pls.Tracks).To(Equal(model.MediaFiles{
songDayInALife,
songRadioactivity,
}))
mfs := pls.MediaFiles()
Expect(mfs).To(HaveLen(2))
Expect(mfs[0].ID).To(Equal(songDayInALife.ID))
Expect(mfs[1].ID).To(Equal(songRadioactivity.ID))
})
})
It("Put/Exists/Delete", func() {
By("saves the playlist to the DB")
newPls := model.Playlist{Name: "Great!", Owner: "userid",
Tracks: model.MediaFiles{{ID: "1004"}, {ID: "1003"}}}
newPls := model.Playlist{Name: "Great!", Owner: "userid"}
newPls.AddTracks([]string{"1004", "1003"})
By("saves the playlist to the DB")
Expect(repo.Put(&newPls)).To(BeNil())
By("adds repeated songs to a playlist and keeps the order")
newPls.Tracks = append(newPls.Tracks, model.MediaFile{ID: "1004"})
newPls.AddTracks([]string{"1004"})
Expect(repo.Put(&newPls)).To(BeNil())
saved, _ := repo.GetWithTracks(newPls.ID)
Expect(saved.Tracks).To(HaveLen(3))