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.
135 lines
3.2 KiB
135 lines
3.2 KiB
package showcase
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
"automatedtesting/usecases_server/models"
|
|
"automatedtesting/usecases_server/utils"
|
|
"automatedtesting/usecases_server/utils/cyllib/log"
|
|
"automatedtesting/usecases_server/utils/cyllib/re"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type CaseController struct {
|
|
Id int `json:"id"`
|
|
Indexes int `json:"index"`
|
|
Module string `json:"module"`
|
|
ChildModule string `json:"childmodule"`
|
|
Title string `json:"title"`
|
|
Step string `json:"step"`
|
|
Expect string `json:"expect"`
|
|
Real string `json:"_"`
|
|
Result string `json:"result"`
|
|
}
|
|
|
|
func (s *CaseController) GetData(c *gin.Context) {
|
|
public := utils.GetPublicParam(c)
|
|
cases, total := s.GetCaseData(*public, c)
|
|
type MsgList struct {
|
|
Size int `json:"size"`
|
|
Step []string `json:"step"`
|
|
Expect []string `json:"expect"`
|
|
Real []string `json:"real"`
|
|
}
|
|
var msgmap = make(map[int]MsgList)
|
|
for _, d := range *cases {
|
|
ms := MsgList{}
|
|
st, ex, real := utils.GetReStepAndExpect(d.Step, d.Expect, d.Real)
|
|
sts := []string{}
|
|
exs := []string{}
|
|
res := []string{}
|
|
for i := range st {
|
|
st_s, ex_s, re_s := "", "", ""
|
|
|
|
st_s_ := re.FindAll(`^\d+\.([\w\W]*)`, st[i])
|
|
ex_s_ := re.FindAll(`^\d+\.([\w\W]*)`, ex[i])
|
|
var re_s_ [][]string
|
|
if len(real) >= i+1 {
|
|
re_s_ = re.FindAll(`^\d+\.([\w\W]*)`, real[i])
|
|
}
|
|
if len(st_s_) > 0 && len(st_s_[0]) > 1 {
|
|
st_s = st_s_[0][1]
|
|
st_s = strings.TrimRight(st_s, "\r\n")
|
|
sts = append(sts, st_s)
|
|
}
|
|
|
|
if len(ex_s_) > 0 && len(ex_s_[0]) > 1 {
|
|
ex_s = ex_s_[0][1]
|
|
ex_s = strings.TrimRight(ex_s, "\r\n")
|
|
exs = append(exs, ex_s)
|
|
}
|
|
if len(re_s_) > 0 && len(re_s_[0]) > 1 {
|
|
re_s = re_s_[0][1]
|
|
re_s = strings.TrimRight(re_s, "\r\n")
|
|
res = append(res, re_s)
|
|
}
|
|
}
|
|
ms.Step = sts
|
|
ms.Expect = exs
|
|
ms.Real = res
|
|
ms.Size = len(ms.Step)
|
|
msgmap[d.Id] = ms
|
|
}
|
|
c.JSON(http.StatusOK, &gin.H{"msg": *cases, "msgmap": msgmap, "total": total})
|
|
}
|
|
|
|
func (s *CaseController) GetCount(c *gin.Context) {
|
|
public := utils.GetPublicParam(c)
|
|
cases := s.GetCaseAllData(*public, c)
|
|
var idlist = make([]int, 0)
|
|
for _, d := range *cases {
|
|
idlist = append(idlist, d.Id)
|
|
}
|
|
c.JSON(http.StatusOK, &gin.H{"idlist": idlist})
|
|
}
|
|
|
|
func (s *CaseController) Delete(c *gin.Context) {
|
|
flag := true
|
|
id := c.Query("id")
|
|
|
|
er := models.GetDb().Transaction(func(tx *gorm.DB) error {
|
|
var err error
|
|
if err = tx.Table("cases").Where("id = ?", id).Delete(models.Cases{}).Error; err != nil {
|
|
log.WriteErr(err)
|
|
}
|
|
return err
|
|
})
|
|
if er != nil {
|
|
flag = false
|
|
}
|
|
c.JSON(http.StatusOK, &gin.H{"flag": flag})
|
|
}
|
|
|
|
func (s *CaseController) UpData(c *gin.Context) {
|
|
|
|
cas := s.UCase(c)
|
|
flag := true
|
|
er := models.GetDb().Transaction(func(tx *gorm.DB) error {
|
|
var err error
|
|
if err = tx.Table("cases").Updates(cas).Error; err != nil {
|
|
log.WriteErr(err)
|
|
}
|
|
return err
|
|
})
|
|
if er != nil {
|
|
flag = false
|
|
}
|
|
c.JSON(http.StatusOK, &gin.H{"flag": flag})
|
|
}
|
|
func (s *CaseController) Add(c *gin.Context) {
|
|
cas := s.ACase(c)
|
|
flag := true
|
|
er := models.GetDb().Transaction(func(tx *gorm.DB) error {
|
|
var err error
|
|
if err = tx.Create(&cas).Error; err != nil {
|
|
log.WriteErr(err)
|
|
}
|
|
return err
|
|
})
|
|
if er != nil {
|
|
flag = false
|
|
}
|
|
c.JSON(http.StatusOK, &gin.H{"flag": flag})
|
|
}
|
|
|