2016-03-03 18:08:44 +01:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
2016-03-22 01:31:28 +01:00
|
|
|
"io"
|
|
|
|
"os"
|
|
|
|
|
2016-03-03 18:08:44 +01:00
|
|
|
"github.com/astaxie/beego"
|
2017-04-01 15:47:14 +02:00
|
|
|
"github.com/cloudsonic/sonic-server/api/responses"
|
|
|
|
"github.com/cloudsonic/sonic-server/domain"
|
|
|
|
"github.com/cloudsonic/sonic-server/engine"
|
|
|
|
"github.com/cloudsonic/sonic-server/utils"
|
2016-03-03 18:08:44 +01:00
|
|
|
)
|
|
|
|
|
2016-03-22 01:31:28 +01:00
|
|
|
type MediaRetrievalController struct {
|
2016-03-03 18:08:44 +01:00
|
|
|
BaseAPIController
|
2016-03-09 05:05:54 +01:00
|
|
|
cover engine.Cover
|
2016-03-03 18:08:44 +01:00
|
|
|
}
|
|
|
|
|
2016-03-22 01:31:28 +01:00
|
|
|
func (c *MediaRetrievalController) Prepare() {
|
2016-03-11 21:16:17 +01:00
|
|
|
utils.ResolveDependencies(&c.cover)
|
2016-03-03 18:08:44 +01:00
|
|
|
}
|
|
|
|
|
2016-03-22 01:31:28 +01:00
|
|
|
func (c *MediaRetrievalController) GetAvatar() {
|
|
|
|
var f *os.File
|
|
|
|
f, err := os.Open("static/itunes.png")
|
|
|
|
if err != nil {
|
|
|
|
beego.Error(err, "Image not found")
|
2016-03-23 17:35:10 +01:00
|
|
|
c.SendError(responses.ErrorDataNotFound, "Avatar image not found")
|
2016-03-22 01:31:28 +01:00
|
|
|
}
|
|
|
|
defer f.Close()
|
|
|
|
io.Copy(c.Ctx.ResponseWriter, f)
|
|
|
|
}
|
|
|
|
|
2016-03-24 19:44:21 +01:00
|
|
|
func (c *MediaRetrievalController) GetCoverArt() {
|
2016-03-07 20:13:01 +01:00
|
|
|
id := c.RequiredParamString("id", "id parameter required")
|
2016-03-11 06:37:07 +01:00
|
|
|
size := c.ParamInt("size", 0)
|
2016-03-03 18:08:44 +01:00
|
|
|
|
2016-03-09 05:31:48 +01:00
|
|
|
err := c.cover.Get(id, size, c.Ctx.ResponseWriter)
|
2016-03-03 18:08:44 +01:00
|
|
|
|
2016-03-09 05:05:54 +01:00
|
|
|
switch {
|
2016-03-23 23:15:14 +01:00
|
|
|
case err == domain.ErrNotFound:
|
2016-03-09 05:05:54 +01:00
|
|
|
beego.Error(err, "Id:", id)
|
2016-03-30 16:01:37 +02:00
|
|
|
c.SendError(responses.ErrorDataNotFound, "Cover not found")
|
2016-03-09 05:05:54 +01:00
|
|
|
case err != nil:
|
|
|
|
beego.Error(err)
|
2016-03-23 17:35:10 +01:00
|
|
|
c.SendError(responses.ErrorGeneric, "Internal Error")
|
2016-03-03 18:08:44 +01:00
|
|
|
}
|
|
|
|
}
|