提交 4847fd37 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

fix issues

上级 0f994246
......@@ -22,13 +22,15 @@ var (
ParamErr = ResponseCode{200, "Parameter Error"}
UnAuthorizedErr = ResponseCode{401, "UnAuthorized"}
ResponseParseErr = ResponseCode{6000, "Json Parse Error"}
NeedInitErr = ResponseCode{1000, "Data Not Init"}
ErrDirNotEmpty = ResponseCode{1100, "Dir Not Empty Error"}
ErrZentaoConfig = ResponseCode{2000, "Zentao Config Error"}
ErrZentaoRequest = ResponseCode{3000, "zentao request Error"}
ErrRecordNotExist = ResponseCode{4000, "Record Not Found"}
NotAvailable = ResponseCode{5000, "Not Available"}
ResponseParseErr = ResponseCode{6000, "Json Parse Error"}
NeedInitErr = ResponseCode{1000, "Data Not Init"}
ErrDirNotEmpty = ResponseCode{1100, "Dir Not Empty Error"}
ErrZentaoConfig = ResponseCode{2000, "Zentao Config Error"}
ErrZentaoRequest = ResponseCode{3000, "zentao request Error"}
ErrRecordWithSameNameExist = ResponseCode{3010, "Record Exist"}
ErrRecordNotExist = ResponseCode{4000, "Record Not Found"}
NotAvailable = ResponseCode{5000, "Not Available"}
)
type ResultStatus string
......
......@@ -52,9 +52,13 @@ func (c *SiteCtrl) Create(ctx iris.Context) {
req := model.Site{}
if err := ctx.ReadJSON(&req); err != nil {
ctx.JSON(c.ErrResp(commConsts.ParamErr, err.Error()))
return
}
id, err := c.SiteService.Create(req)
id, isDuplicate, err := c.SiteService.Create(req)
if isDuplicate {
ctx.JSON(c.ErrResp(commConsts.ErrRecordWithSameNameExist, ""))
}
if err != nil {
ctx.JSON(c.ErrResp(commConsts.ErrZentaoConfig, err.Error()))
return
......@@ -69,7 +73,11 @@ func (c *SiteCtrl) Update(ctx iris.Context) {
ctx.JSON(c.ErrResp(commConsts.ParamErr, err.Error()))
}
err := c.SiteService.Update(req)
isDuplicate, err := c.SiteService.Update(req)
if isDuplicate {
ctx.JSON(c.ErrResp(commConsts.ErrRecordWithSameNameExist, ""))
return
}
if err != nil {
ctx.JSON(c.ErrResp(commConsts.ErrZentaoConfig, err.Error()))
return
......
package repo
import (
"errors"
"fmt"
"github.com/easysoft/zentaoatf/internal/pkg/domain"
commonUtils "github.com/easysoft/zentaoatf/internal/pkg/lib/common"
......@@ -69,18 +68,19 @@ func (r *SiteRepo) Get(id uint) (po model.Site, err error) {
return
}
func (r *SiteRepo) Create(site *model.Site) (id uint, err error) {
func (r *SiteRepo) Create(site *model.Site) (id uint, isDuplicate bool, err error) {
site.Url = httpUtils.AddSepIfNeeded(site.Url)
po, err := r.FindDuplicate(site.Name, site.Url, 0)
if po.ID != 0 {
return 0, errors.New(fmt.Sprintf("站点%s(%s)已存在", site.Name, site.Url))
isDuplicate = true
return
}
err = r.DB.Model(&model.Site{}).Create(site).Error
if err != nil {
logUtils.Errorf(color.RedString("create site failed, error: %s.", err.Error()))
return 0, err
return
}
id = site.ID
......@@ -88,19 +88,20 @@ func (r *SiteRepo) Create(site *model.Site) (id uint, err error) {
return
}
func (r *SiteRepo) Update(site model.Site) error {
func (r *SiteRepo) Update(site model.Site) (isDuplicate bool, err error) {
po, err := r.FindDuplicate(site.Name, site.Url, site.ID)
if po.ID != 0 {
return errors.New(fmt.Sprintf("站点%s(%s)已存在", site.Name, site.Url))
isDuplicate = true
return
}
err = r.DB.Model(&model.Site{}).Where("id = ?", site.ID).Updates(&site).Error
if err != nil {
logUtils.Errorf(color.RedString("update site failed, error: %s.", err.Error()))
return err
return
}
return nil
return
}
func (r *SiteRepo) Delete(id uint) (err error) {
......@@ -117,7 +118,7 @@ func (r *SiteRepo) Delete(id uint) (err error) {
func (r *SiteRepo) FindDuplicate(name, url string, id uint) (po model.Site, err error) {
db := r.DB.Model(&model.Site{}).
Where("NOT deleted").
Where("name = ? OR url = ?", name, url)
Where("name = ?", name)
if id != 0 {
db.Where("id != ?", id)
......
......@@ -41,7 +41,7 @@ func (s *SiteService) GetDomainObject(id uint) (site serverDomain.ZentaoSite, er
return
}
func (s *SiteService) Create(site model.Site) (id uint, err error) {
func (s *SiteService) Create(site model.Site) (id uint, isDuplicate bool, err error) {
site.Url = fileUtils.AddUrlPathSepIfNeeded(site.Url)
config := configHelper.LoadBySite(site)
......@@ -50,15 +50,12 @@ func (s *SiteService) Create(site model.Site) (id uint, err error) {
return
}
id, err = s.SiteRepo.Create(&site)
if err != nil {
return
}
id, isDuplicate, err = s.SiteRepo.Create(&site)
return
}
func (s *SiteService) Update(site model.Site) (err error) {
func (s *SiteService) Update(site model.Site) (isDuplicate bool, err error) {
site.Url = fileUtils.AddUrlPathSepIfNeeded(site.Url)
config := configHelper.LoadBySite(site)
......@@ -67,8 +64,8 @@ func (s *SiteService) Update(site model.Site) (err error) {
return
}
err = s.SiteRepo.Update(site)
if err != nil {
isDuplicate, err = s.SiteRepo.Update(site)
if isDuplicate || err != nil {
return
}
......@@ -136,7 +133,7 @@ func (s *SiteService) CreateEmptySite(lang string) (err error) {
Name: name,
Url: "",
}
_, err = s.SiteRepo.Create(&po)
_, _, err = s.SiteRepo.Create(&po)
return
}
......@@ -255,6 +255,7 @@ export default {
'biz_1000': 'Data Not Init',
'biz_1100': 'Can not delete dir that is not empty.',
'biz_2000': 'Zentao Config Failed',
'biz_3010': 'Record with same name already exist',
'biz_4000': 'Record Not Found',
'biz_5000': 'Not Available',
......
......@@ -267,6 +267,7 @@ export default {
'biz_1100': '无法删除非空目录。',
'biz_2000': '禅道配置失败',
'biz_3000': '禅道请求错误',
'biz_3010': '已存在相同名称的记录',
'biz_4000': '记录不存在',
'biz_5000': '无效的请求',
......
......@@ -115,8 +115,6 @@ const errorHandler = (resp: any) => {
}
const result ={httpCode: resp.status, resultCode: resp.data.code, resultMsg: resp.data.msg} as ResultErr
console.log(`===`, result)
bus.emit(settings.eventNotify, result)
return Promise.reject({})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册