Add methods to Playlist model
Also, don't load genres for Playlists tracks (not necessary for now)
This commit is contained in:
@@ -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
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user