This commit is contained in:
Max 2021-09-29 09:08:31 +08:00
parent 914b230847
commit 45c061dccb
2 changed files with 31 additions and 0 deletions

View file

@ -56,3 +56,20 @@ func TestProcessFind(t *testing.T) {
res := any.Of(response).Map()
assert.Equal(t, any.Of(res.Get("id")).CInt(), 1)
}
func TestProcessSave(t *testing.T) {
args := []interface{}{
"service",
map[string]interface{}{
"name": "腾讯黑岩云主机",
"short_name": "高性能云主机",
"kind_id": 3,
"manu_id": 1,
"price_options": []string{"按月订阅"},
},
}
process := gou.NewProcess("xiang.table.Save", args...)
response := table.ProcessSave(process)
assert.NotNil(t, response)
assert.True(t, any.Of(response).IsInt())
}

View file

@ -8,6 +8,7 @@ func init() {
// 注册处理器
gou.RegisterProcessHandler("xiang.table.Search", ProcessSearch)
gou.RegisterProcessHandler("xiang.table.Find", ProcessFind)
gou.RegisterProcessHandler("xiang.table.Save", ProcessSave)
}
// ProcessSearch xiang.table.Search
@ -46,3 +47,16 @@ func ProcessFind(process *gou.Process) interface{} {
param := api.MergeDefaultQueryParam(gou.QueryParam{}, 1)
return gou.NewProcess(api.Process, id, param).Run()
}
// ProcessSave xiang.table.Save
// 保存单条记录。如数据记录中包含主键字段则更新,不包含主键字段则创建记录;返回创建或更新的记录主键值
func ProcessSave(process *gou.Process) interface{} {
process.ValidateArgNums(2)
name := process.ArgsString(0)
table := Select(name)
api := table.APIs["save"].ValidateLoop("xiang.table.save")
if process.NumOfArgsIs(3) && api.IsAllow(process.Args[2]) {
return nil
}
return gou.NewProcess(api.Process, process.Args[1]).Run()
}