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.
108 lines
2.8 KiB
108 lines
2.8 KiB
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) |
|
}
|
|
|