mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 17:44:05 +08:00
opt some
This commit is contained in:
parent
6966a524f0
commit
00c4286e1d
53
base/mdb/zone.go
Normal file
53
base/mdb/zone.go
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package mdb
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "github.com/shylinux/icebergs"
|
||||||
|
kit "github.com/shylinux/toolkits"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ZoneAction(fields ...string) map[string]*ice.Action {
|
||||||
|
_zone := func(m *ice.Message) string {
|
||||||
|
return kit.Select(kit.MDB_ZONE, m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_SHORT)))
|
||||||
|
}
|
||||||
|
list := map[string]*ice.Action{
|
||||||
|
CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
||||||
|
}},
|
||||||
|
INSERT: {Name: "insert zone= type=go name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, _zone(m), arg[1])
|
||||||
|
m.Cmdy(INSERT, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg[2:])
|
||||||
|
}},
|
||||||
|
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(MODIFY, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), m.Option(kit.MDB_ID), arg)
|
||||||
|
}},
|
||||||
|
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(_zone(m)))
|
||||||
|
}},
|
||||||
|
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.OptionFields(_zone(m), m.Conf(m.PrefixKey(), kit.META_FIELD))
|
||||||
|
m.Cmdy(EXPORT, m.PrefixKey(), "", ZONE)
|
||||||
|
m.Conf(m.PrefixKey(), kit.MDB_HASH, "")
|
||||||
|
}},
|
||||||
|
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.OptionFields(_zone(m))
|
||||||
|
m.Cmdy(IMPORT, m.PrefixKey(), "", ZONE)
|
||||||
|
}},
|
||||||
|
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
switch arg[0] {
|
||||||
|
case _zone(m):
|
||||||
|
m.Cmdy(INPUTS, m.PrefixKey(), "", HASH, arg)
|
||||||
|
default:
|
||||||
|
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg)
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
}
|
||||||
|
if len(fields) == 0 {
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|
||||||
|
res := map[string]*ice.Action{}
|
||||||
|
for _, field := range fields {
|
||||||
|
res[field] = list[field]
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
76
core/code/case.go
Normal file
76
core/code/case.go
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package code
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/cli"
|
||||||
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
|
"github.com/shylinux/icebergs/base/web"
|
||||||
|
kit "github.com/shylinux/toolkits"
|
||||||
|
)
|
||||||
|
|
||||||
|
const CASE = "case"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.Merge(&ice.Context{
|
||||||
|
Configs: map[string]*ice.Config{
|
||||||
|
CASE: {Name: CASE, Help: "用例", Value: kit.Data(
|
||||||
|
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,name,cmd,api,arg,res",
|
||||||
|
)},
|
||||||
|
},
|
||||||
|
Commands: map[string]*ice.Command{
|
||||||
|
CASE: {Name: "case zone id auto", Help: "用例", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
|
mdb.INSERT: {Name: "create zone name=hi cmd=POST,GET api arg:textarea res:textarea", Help: "添加"},
|
||||||
|
|
||||||
|
cli.RUN: {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Option(web.SPIDE_HEADER, web.ContentType, web.ContentJSON)
|
||||||
|
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(web.SPIDE, web.SPIDE_DEV, web.SPIDE_RAW,
|
||||||
|
m.Option(cli.CMD), m.Option(cli.API), web.SPIDE_DATA, m.Option(cli.ARG)))))
|
||||||
|
m.Info(`curl "` + m.Option(cli.API) + `" -H "Content-Type: application/json"` + ` -d '` + m.Option(cli.ARG) + `'`)
|
||||||
|
m.ProcessInner()
|
||||||
|
}},
|
||||||
|
cli.CHECK: {Name: "check", Help: "检查", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if m.ProcessInner(); len(arg) > 0 {
|
||||||
|
success := 0
|
||||||
|
m.Cmd(m.PrefixKey(), arg[0]).Table(func(index int, value map[string]string, head []string) {
|
||||||
|
m.Push(kit.MDB_TIME, m.Time())
|
||||||
|
m.Push(kit.MDB_ID, value[kit.MDB_ID])
|
||||||
|
if err := m.Cmdx(m.PrefixKey(), cli.CHECK, value); err == ice.OK {
|
||||||
|
m.Push(cli.ERR, cli.Color(m, cli.GREEN, err))
|
||||||
|
success++
|
||||||
|
} else {
|
||||||
|
m.Push(cli.ERR, cli.Color(m, cli.RED, err))
|
||||||
|
}
|
||||||
|
m.Push(cli.API, value[cli.API])
|
||||||
|
m.Push(cli.ARG, value[cli.ARG])
|
||||||
|
m.Push(cli.RES, value[cli.RES])
|
||||||
|
})
|
||||||
|
m.StatusTimeCount(ice.SUCCESS, success)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
res := kit.UnMarshal(m.Cmdx(m.PrefixKey(), cli.RUN))
|
||||||
|
if m.Option(cli.RES) != "" {
|
||||||
|
for k, v := range kit.KeyValue(nil, "", kit.UnMarshal(m.Option(cli.RES))) {
|
||||||
|
if v != kit.Value(res, k) {
|
||||||
|
m.Echo(kit.Formats(res))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.Echo(ice.OK)
|
||||||
|
}},
|
||||||
|
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Fields(len(arg), "time,zone,count", m.Conf(m.PrefixKey(), kit.META_FIELD))
|
||||||
|
if m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, arg); len(arg) == 0 {
|
||||||
|
m.Action(mdb.CREATE, mdb.EXPORT, mdb.IMPORT)
|
||||||
|
m.PushAction(mdb.INSERT, cli.CHECK, mdb.REMOVE)
|
||||||
|
} else {
|
||||||
|
m.Action(mdb.INSERT, cli.CHECK)
|
||||||
|
m.PushAction(cli.RUN, cli.CHECK)
|
||||||
|
}
|
||||||
|
m.StatusTimeCount()
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user