[add] template locale, theme api

This commit is contained in:
Max 2023-09-28 11:35:17 +08:00
parent 688e06e548
commit 0b1de85033
3 changed files with 91 additions and 6 deletions

View file

@ -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" }
},

View file

@ -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)

View file

@ -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()