[add] template locale, theme api
This commit is contained in:
parent
688e06e548
commit
0b1de85033
3 changed files with 91 additions and 6 deletions
|
|
@ -11,16 +11,30 @@ var dsl = []byte(`
|
|||
"group": "__yao/sui/v1",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/:id/template",
|
||||
"method": "GET",
|
||||
"process": "sui.Template.Get",
|
||||
"in": ["$param.id"],
|
||||
"out": { "status": 200, "type": "application/json" }
|
||||
},{
|
||||
"path": "/:id/template/:template_id",
|
||||
"method": "GET",
|
||||
"process": "sui.Template.Find",
|
||||
"in": ["$param.id", "$param.template_id"],
|
||||
"out": { "status": 200, "type": "application/json" }
|
||||
},{
|
||||
"path": "/:id/template",
|
||||
},
|
||||
|
||||
{
|
||||
"path": "/:id/template/:template_id/locale",
|
||||
"method": "GET",
|
||||
"process": "sui.Template.Get",
|
||||
"in": ["$param.id"],
|
||||
"process": "sui.Template.Locale.Get",
|
||||
"in": ["$param.id", "$param.template_id"],
|
||||
"out": { "status": 200, "type": "application/json" }
|
||||
},{
|
||||
"path": "/:id/template/:template_id/theme",
|
||||
"method": "GET",
|
||||
"process": "sui.Template.Theme.Get",
|
||||
"in": ["$param.id", "$param.template_id"],
|
||||
"out": { "status": 200, "type": "application/json" }
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,10 @@ import (
|
|||
|
||||
func init() {
|
||||
process.RegisterGroup("sui", map[string]process.Handler{
|
||||
"template.get": TemplateGet,
|
||||
"template.find": TemplateFind,
|
||||
"template.get": TemplateGet,
|
||||
"template.find": TemplateFind,
|
||||
"template.locale.get": TemplateLocaleGet,
|
||||
"template.theme.get": TemplateThemeGet,
|
||||
|
||||
"editor.render": EditorRender,
|
||||
"editor.source": EditorSource,
|
||||
|
|
@ -42,6 +44,32 @@ func TemplateFind(process *process.Process) interface{} {
|
|||
return template
|
||||
}
|
||||
|
||||
// TemplateLocaleGet handle the find Template request
|
||||
func TemplateLocaleGet(process *process.Process) interface{} {
|
||||
process.ValidateArgNums(2)
|
||||
|
||||
sui := get(process)
|
||||
template, err := sui.GetTemplate(process.ArgsString(1))
|
||||
if err != nil {
|
||||
exception.New(err.Error(), 500).Throw()
|
||||
}
|
||||
|
||||
return template.Locales()
|
||||
}
|
||||
|
||||
// TemplateThemeGet handle the find Template request
|
||||
func TemplateThemeGet(process *process.Process) interface{} {
|
||||
process.ValidateArgNums(2)
|
||||
|
||||
sui := get(process)
|
||||
template, err := sui.GetTemplate(process.ArgsString(1))
|
||||
if err != nil {
|
||||
exception.New(err.Error(), 500).Throw()
|
||||
}
|
||||
|
||||
return template.Themes()
|
||||
}
|
||||
|
||||
// EditorRender handle the render page request
|
||||
func EditorRender(process *process.Process) interface{} {
|
||||
process.ValidateArgNums(3)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,49 @@ func TestTemplateFind(t *testing.T) {
|
|||
assert.Equal(t, "tech-blue", res.(*local.Template).ID)
|
||||
}
|
||||
|
||||
func TestTemplateLocaleGet(t *testing.T) {
|
||||
load(t)
|
||||
defer clean()
|
||||
|
||||
// test demo
|
||||
p, err := process.Of("sui.template.locale.get", "demo", "tech-blue")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
res, err := p.Exec()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.IsType(t, []core.SelectOption{}, res)
|
||||
assert.Equal(t, 3, len(res.([]core.SelectOption)))
|
||||
assert.Equal(t, "ar", res.([]core.SelectOption)[0].Value)
|
||||
assert.Equal(t, "zh-cn", res.([]core.SelectOption)[1].Value)
|
||||
assert.Equal(t, "zh-tw", res.([]core.SelectOption)[2].Value)
|
||||
}
|
||||
|
||||
func TestTemplateThemeGet(t *testing.T) {
|
||||
load(t)
|
||||
defer clean()
|
||||
|
||||
// test demo
|
||||
p, err := process.Of("sui.template.theme.get", "demo", "tech-blue")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
res, err := p.Exec()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.IsType(t, []core.SelectOption{}, res)
|
||||
assert.Equal(t, 2, len(res.([]core.SelectOption)))
|
||||
assert.Equal(t, "dark", res.([]core.SelectOption)[0].Value)
|
||||
assert.Equal(t, "light", res.([]core.SelectOption)[1].Value)
|
||||
}
|
||||
|
||||
func TestEditorRender(t *testing.T) {
|
||||
load(t)
|
||||
defer clean()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue