mirror of
https://shylinux.com/x/icebergs
synced 2025-04-25 17:18: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