bilibili-backup/app/admin/main/macross/http/package.go
2019-04-22 02:59:20 +00:00

109 lines
2.8 KiB
Go

package http
import (
"fmt"
"go-common/app/admin/main/macross/conf"
"go-common/app/admin/main/macross/model/package"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"path/filepath"
"strings"
)
func packageUpload(c *bm.Context) {
var err = c.Request.ParseMultipartForm(1 << 30)
res := map[string]interface{}{}
res["message"] = "success"
if err != nil {
log.Error("c.Request.ParseMultipartForm() error(%v)", err)
res["message"] = fmt.Sprintf("%v", err)
c.JSONMap(res, err)
return
}
file, header, err := c.Request.FormFile("file")
if err != nil {
log.Error("c.Request.FormFile() error(%v)", err)
res["message"] = fmt.Sprintf("%v", err)
c.JSONMap(res, err)
return
}
defer file.Close()
var (
clientType = strings.ToLower(c.Request.FormValue("client_type"))
appName = c.Request.FormValue("app_name")
pipelineID = c.Request.FormValue("pipeline_id")
apkName = c.Request.FormValue("apk_name")
channel = c.Request.FormValue("channel")
saveDir = filepath.Join(clientType, appName, pipelineID)
pkgInfo upload.PkgInfo
)
if clientType == "" || appName == "" || pipelineID == "" {
errMsg := "client_type, app_name, pipeline_id can not be null"
log.Error(errMsg)
res["message"] = errMsg
c.JSONMap(res, ecode.RequestErr)
return
}
if clientType != "ios" && clientType != "android" {
errMsg := "client_type must be 'ios' or 'android'"
log.Error(errMsg)
res["message"] = errMsg
c.JSONMap(res, ecode.RequestErr)
return
}
pkgInfo.FileName = header.Filename
pkgInfo.SaveDir = filepath.Join(conf.Conf.Property.Package.SavePath, saveDir)
pkgInfo.ClientType = clientType
pkgInfo.Channel = channel
pkgInfo.ApkName = apkName
err = svr.PackageUpload(file, pkgInfo)
if err != nil {
res["message"] = fmt.Sprintf("%v", err)
c.JSONMap(res, err)
return
}
c.JSONMap(res, nil)
}
func packageList(c *bm.Context) {
var (
clientType = strings.ToLower(c.Request.FormValue("client_type"))
appName = c.Request.Form.Get("app_name")
pipelineID = c.Request.Form.Get("pipeline_id")
saveDir = filepath.Join(clientType, appName, pipelineID)
)
res := map[string]interface{}{}
res["message"] = "success"
saveDir = filepath.Join(conf.Conf.Property.Package.SavePath, saveDir)
if clientType == "" || appName == "" || pipelineID == "" {
errMsg := "client_type, app_name, pipeline_id can not be null"
log.Error(errMsg)
res["message"] = errMsg
c.JSONMap(res, ecode.RequestErr)
return
}
if clientType != "ios" && clientType != "android" {
errMsg := "client_type must be 'ios' or 'android'"
log.Error(errMsg)
res["message"] = errMsg
c.JSONMap(res, ecode.RequestErr)
return
}
fileList, err := svr.PackageList(saveDir)
if err != nil {
res["message"] = fmt.Sprintf("%v", err)
c.JSONMap(res, err)
return
}
c.JSON(fileList, nil)
}