go-common/app/interface/main/videoup/http/creator.go
2019-04-22 18:49:16 +08:00

144 lines
2.9 KiB
Go

package http
import (
"io/ioutil"
"net/http"
"encoding/json"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func creatorEdit(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.CreatorParam{}
err error
)
defer func() {
//特例 creatorEdit
ap.Title = cp.Title
ap.Aid = cp.Aid
ap.Tag = cp.Tag
ap.Desc = cp.Desc
ap.OpenElec = cp.OpenElec
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "creator", ap, err)
}()
midI, _ := c.Get("mid")
mid, _ := midI.(int64)
if err = c.Bind(cp); err != nil {
err = ecode.VideoupParamErr
return
}
if cp.Aid == 0 {
err = ecode.VideoupParamErr
return
}
aid = cp.Aid
ap.Aid = cp.Aid
ap.Title = cp.Title
ap.Desc = cp.Desc
ap.Tag = cp.Tag
ap.OpenElec = cp.OpenElec
err = vdpSvc.CreatorEdit(c, mid, cp)
if err != nil {
c.JSON(nil, err)
log.Error("addErr err(%+v)|cp(%+v)", err, cp)
return
}
c.JSON(map[string]interface{}{
"aid": cp.Aid,
}, nil)
}
func creatorAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Mid = mid
ap.UpFrom = archive.UpFromCreator
defer func() {
cp.IPv6 = ap.IPv6
cp.Aid = ap.Aid
cp.UpFrom = ap.UpFrom
cp.Mid = ap.Mid
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "creator", cp, err)
}()
if err == nil {
aid, err = vdpSvc.CreatorAdd(c, mid, ap)
}
if err != nil {
c.JSON(nil, err)
log.Error("addErr err(%+v)|ap(%+v)", err, ap)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}
func creatorUpCover(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
file, _, err := c.Request.FormFile("file")
if err != nil {
log.Error("c.Request().FormFile(\"file\") error(%v) | ", err)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(file)
file.Close()
if err != nil {
log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
log.Error("filetype not allow file type(%s)", ftype)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := vdpSvc.CreatorUpCover(c, ftype, bs, mid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
}, nil)
}