You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
2.9 KiB
146 lines
2.9 KiB
package http |
|
|
|
import ( |
|
"encoding/json" |
|
"io/ioutil" |
|
"net/http" |
|
|
|
"go-common/app/interface/main/videoup/model/archive" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
func clientAdd(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.Aid = 0 |
|
ap.Mid = mid |
|
ap.UpFrom = archive.UpFromWindows |
|
defer func() { |
|
cp.Aid = ap.Aid |
|
cp.Mid = ap.Mid |
|
cp.IPv6 = ap.IPv6 |
|
cp.UpFrom = ap.UpFrom |
|
build, buvid := getBuildInfo(c) |
|
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "windows", cp, err) |
|
}() |
|
aid, err = vdpSvc.ClientAdd(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 clientEdit(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 |
|
} |
|
aid = ap.Aid |
|
ap.Mid = mid |
|
ap.UpFrom = archive.UpFromWindows |
|
defer func() { |
|
cp.Aid = ap.Aid |
|
cp.Mid = ap.Mid |
|
cp.UpFrom = ap.UpFrom |
|
cp.IPv6 = ap.IPv6 |
|
build, buvid := getBuildInfo(c) |
|
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "windows", cp, err) |
|
}() |
|
err = vdpSvc.ClientEdit(c, ap, mid) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
log.Error("editErr err(%+v)|ap(%+v)", err, ap) |
|
return |
|
} |
|
|
|
c.JSON(map[string]interface{}{ |
|
"aid": ap.Aid, |
|
}, nil) |
|
} |
|
|
|
func clientUpCover(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.ClientUpCover(c, ftype, bs, mid) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"url": url, |
|
}, nil) |
|
}
|
|
|