136 lines
3.4 KiB
Go
136 lines
3.4 KiB
Go
|
package http
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"io/ioutil"
|
||
|
"mime/multipart"
|
||
|
"time"
|
||
|
|
||
|
"go-common/app/admin/main/apm/model/ut"
|
||
|
"go-common/library/ecode"
|
||
|
"go-common/library/log"
|
||
|
bm "go-common/library/net/http/blademaster"
|
||
|
)
|
||
|
|
||
|
func upload(c *bm.Context) {
|
||
|
var (
|
||
|
file multipart.File
|
||
|
body []byte
|
||
|
htmlURL string
|
||
|
reportURL string
|
||
|
dataURL string
|
||
|
err error
|
||
|
pkg = new(ut.PkgAnls)
|
||
|
files []*ut.File
|
||
|
res = &ut.UploadRes{}
|
||
|
header *multipart.FileHeader
|
||
|
)
|
||
|
c.Request.ParseMultipartForm(32 << 20)
|
||
|
if err = c.Bind(res); err != nil {
|
||
|
return
|
||
|
}
|
||
|
log.Info("ut.upload(%d) start! current_time(%d)", res.MergeID, time.Now().Unix())
|
||
|
defer log.Info("ut.upload(%d) finished. current_time(%d)", res.MergeID, time.Now().Unix())
|
||
|
if file, _, err = c.Request.FormFile("report_file"); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("report request upload err (%v)", err)
|
||
|
return
|
||
|
}
|
||
|
defer file.Close()
|
||
|
if body, err = ioutil.ReadAll(file); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if body, err = apmSvc.ParseContent(c, body); err != nil {
|
||
|
c.JSON(err.Error(), err)
|
||
|
return
|
||
|
}
|
||
|
if pkg, err = apmSvc.CalcCount(c, body); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
if pkg.Assertions == 0 {
|
||
|
c.JSON("no result", nil)
|
||
|
return
|
||
|
}
|
||
|
if reportURL, err = apmSvc.Upload(c, "json", time.Now().Unix(), body); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
if file, header, err = c.Request.FormFile("data_file"); err == nil && header.Size > 0 {
|
||
|
defer file.Close()
|
||
|
if body, err = ioutil.ReadAll(file); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("Upload data request error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if files, err = apmSvc.CalcCountFiles(c, res, body); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
log.Error("Upload data calcCount error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if dataURL, err = apmSvc.Upload(c, "text/plain", time.Now().Unix(), body); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
if file, _, err = c.Request.FormFile("html_file"); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("html request upload err (%v)", err)
|
||
|
return
|
||
|
}
|
||
|
defer file.Close()
|
||
|
if body, err = ioutil.ReadAll(file); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("html read error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if htmlURL, err = apmSvc.Upload(c, "html", time.Now().Unix(), body); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
if err = apmSvc.AddUT(c, pkg, files, res, dataURL, reportURL, htmlURL); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
// update ut_app has_ut = 1 && converage
|
||
|
if err = apmSvc.UpdateUTApp(c, pkg); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
c.JSON(nil, nil)
|
||
|
}
|
||
|
|
||
|
// uploadApp upload path to ut_app
|
||
|
func uploadApp(c *bm.Context) {
|
||
|
var (
|
||
|
file multipart.File
|
||
|
body []byte
|
||
|
apps []*ut.App
|
||
|
err error
|
||
|
)
|
||
|
c.Request.ParseMultipartForm(32 << 20)
|
||
|
if file, _, err = c.Request.FormFile("path_file"); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("path request upload error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
defer file.Close()
|
||
|
if body, err = ioutil.ReadAll(file); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("path_file read error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if err = json.Unmarshal(body, &apps); err != nil {
|
||
|
log.Error("json.Unmarshal error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
if err = apmSvc.AddUTApp(c, apps); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
log.Error("apmSvc.AddUtApp error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
c.JSON(nil, err)
|
||
|
}
|