123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- 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)
- }
|