Searching by artists, spike mode

This commit is contained in:
Deluan
2016-03-11 00:37:07 -05:00
parent 29c2925a1c
commit ef31d1aca0
9 changed files with 136 additions and 28 deletions
+43
View File
@@ -0,0 +1,43 @@
package api
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/karlkfi/inject"
)
type SearchingController struct {
BaseAPIController
search engine.Search
}
func (c *SearchingController) Prepare() {
inject.ExtractAssignable(utils.Graph, &c.search)
}
func (c *SearchingController) Search2() {
query := c.RequiredParamString("query", "Parameter query required")
artistCount := c.ParamInt("artistCount", 20)
artistOffset := c.ParamInt("artistOffset", 0)
//albumCount := c.ParamInt("albumCount", 20)
//albumOffset := c.ParamInt("albumOffset", 0)
//songCount := c.ParamInt("songCount", 20)
//songOffset := c.ParamInt("songOffset", 0)
as, err := c.search.SearchArtist(query, artistOffset, artistCount)
if err != nil {
beego.Error("Error searching for Artists:", err)
c.SendError(responses.ERROR_GENERIC, "Internal Error")
}
response := c.NewEmpty()
searchResult2 := &responses.SearchResult2{}
searchResult2.Artist = make([]responses.Artist, len(*as))
for i, a := range *as {
searchResult2.Artist[i] = responses.Artist{Id: a.Id, Name: a.Name}
}
response.SearchResult2 = searchResult2
c.SendResponse(response)
}