109 lines
2.8 KiB
Go
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)
|
|
}
|