Playlists working
This commit is contained in:
@@ -32,3 +32,50 @@ func (c *PlaylistsController) GetAll() {
|
||||
response.Playlists = &responses.Playlists{Playlist: playlists}
|
||||
c.SendResponse(response)
|
||||
}
|
||||
|
||||
func (c *PlaylistsController) Get() {
|
||||
id := c.RequiredParamString("id", "id parameter required")
|
||||
|
||||
pinfo, err := c.pls.Get(id)
|
||||
switch {
|
||||
case err == engine.DataNotFound:
|
||||
beego.Error(err, "Id:", id)
|
||||
c.SendError(responses.ERROR_DATA_NOT_FOUND, "Directory not found")
|
||||
case err != nil:
|
||||
beego.Error(err)
|
||||
c.SendError(responses.ERROR_GENERIC, "Internal Error")
|
||||
}
|
||||
|
||||
response := c.NewEmpty()
|
||||
response.Playlist = c.buildPlaylist(pinfo)
|
||||
c.SendResponse(response)
|
||||
}
|
||||
|
||||
func (c *PlaylistsController) buildPlaylist(d *engine.PlaylistInfo) *responses.PlaylistWithSongs {
|
||||
pls := &responses.PlaylistWithSongs{}
|
||||
pls.Id = d.Id
|
||||
pls.Name = d.Name
|
||||
|
||||
pls.Entry = make([]responses.Child, len(d.Entries))
|
||||
for i, child := range d.Entries {
|
||||
pls.Entry[i].Id = child.Id
|
||||
pls.Entry[i].Title = child.Title
|
||||
pls.Entry[i].IsDir = child.IsDir
|
||||
pls.Entry[i].Parent = child.Parent
|
||||
pls.Entry[i].Album = child.Album
|
||||
pls.Entry[i].Year = child.Year
|
||||
pls.Entry[i].Artist = child.Artist
|
||||
pls.Entry[i].Genre = child.Genre
|
||||
pls.Entry[i].CoverArt = child.CoverArt
|
||||
pls.Entry[i].Track = child.Track
|
||||
pls.Entry[i].Duration = child.Duration
|
||||
pls.Entry[i].Size = child.Size
|
||||
pls.Entry[i].Suffix = child.Suffix
|
||||
pls.Entry[i].BitRate = child.BitRate
|
||||
pls.Entry[i].ContentType = child.ContentType
|
||||
if !child.Starred.IsZero() {
|
||||
pls.Entry[i].Starred = &child.Starred
|
||||
}
|
||||
}
|
||||
return pls
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user