71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
package dao
|
|
|
|
import (
|
|
"dkube/db"
|
|
"dkube/model"
|
|
"errors"
|
|
"github.com/wonderivan/logger"
|
|
)
|
|
|
|
var Workflow workflow
|
|
|
|
type workflow struct{}
|
|
|
|
type WorkflowResp struct {
|
|
Items []*model.Workflow `json:"items"`
|
|
Total int `json:"total"`
|
|
}
|
|
|
|
func (w *workflow) GetWorkflows(filterName, namespace string, limit, page int) (data *WorkflowResp, err error) {
|
|
startSet := (page - 1) * limit
|
|
var (
|
|
workflowList []*model.Workflow
|
|
total int
|
|
)
|
|
|
|
tx := db.GORM.
|
|
Model(&model.Workflow{}).
|
|
Where("name like ?", "%"+filterName+"%").
|
|
Count(&total).
|
|
Limit(limit).
|
|
Offset(startSet).
|
|
Order("id desc").
|
|
Find(&workflowList)
|
|
if tx.Error != nil && tx.Error.Error() != "record not found" {
|
|
logger.Error("获取Workflow列表失败, " + tx.Error.Error())
|
|
return nil, errors.New("获取Workflow列表失败, " + tx.Error.Error())
|
|
}
|
|
return &WorkflowResp{
|
|
Items: workflowList,
|
|
Total: total,
|
|
}, nil
|
|
}
|
|
|
|
func (w *workflow) GetById(id int) (workflow *model.Workflow, err error) {
|
|
workflow = &model.Workflow{}
|
|
tx := db.GORM.Where("id = ?", id).First(&workflow)
|
|
if tx.Error != nil && tx.Error.Error() != "record not found" {
|
|
logger.Error("获取Workflow详情失败, " + tx.Error.Error())
|
|
return nil, errors.New("获取Workflow详情失败, " + tx.Error.Error())
|
|
}
|
|
return workflow, nil
|
|
}
|
|
|
|
func (w *workflow) Add(workflow *model.Workflow) (err error) {
|
|
tx := db.GORM.Create(&workflow)
|
|
if tx.Error != nil && tx.Error.Error() != "record not found" {
|
|
logger.Error("创建Workflow失败, " + tx.Error.Error())
|
|
return errors.New("创建Workflow失败, " + tx.Error.Error())
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (w *workflow) DelById(id int) (err error) {
|
|
tx := db.GORM.Where("id = ?", id).Delete(&model.Workflow{})
|
|
if tx.Error != nil && tx.Error.Error() != "record not found" {
|
|
logger.Error("获取Workflow详情失败, " + tx.Error.Error())
|
|
return errors.New("获取Workflow详情失败, " + tx.Error.Error())
|
|
}
|
|
return nil
|
|
}
|