quintodrome/api/get_music_folders.go

31 lines
776 B
Go
Raw Normal View History

package api
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
2016-03-02 06:48:30 -09:00
"github.com/deluan/gosonic/domain"
"github.com/karlkfi/inject"
"github.com/deluan/gosonic/utils"
)
2016-03-02 06:48:30 -09:00
type GetMusicFoldersController struct {
beego.Controller
repo domain.MediaFolderRepository
}
func (c *GetMusicFoldersController) Prepare() {
inject.ExtractAssignable(utils.Graph, &c.repo)
}
2016-02-25 14:47:25 -09:00
func (c *GetMusicFoldersController) Get() {
2016-03-02 06:48:30 -09:00
mediaFolderList, _ := c.repo.GetAll()
2016-02-24 15:14:48 -09:00
folders := make([]responses.MusicFolder, len(mediaFolderList))
2016-02-24 15:29:53 -09:00
for i, f := range mediaFolderList {
2016-02-24 15:14:48 -09:00
folders[i].Id = f.Id
folders[i].Name = f.Name
}
2016-03-02 07:11:46 -09:00
response := responses.NewEmpty()
response.MusicFolders = responses.MusicFolders{Folders: folders}
c.Ctx.Output.Body(responses.ToXML(response))
}