yao/sui/core/page.go
2023-11-21 20:37:24 +08:00

55 lines
1 KiB
Go

package core
import (
"strings"
jsoniter "github.com/json-iterator/go"
)
// Get get the base info
func (page *Page) Get() *Page {
return page
}
// GetConfig get the config
func (page *Page) GetConfig() *PageConfig {
if page.Config == nil && page.Codes.CONF.Code != "" {
var config PageConfig
err := jsoniter.Unmarshal([]byte(page.Codes.CONF.Code), &config)
if err == nil {
page.Config = &config
}
}
return page.Config
}
// Data get the data
func (page *Page) Data(request *Request) (Data, map[string]interface{}, error) {
setting := map[string]interface{}{
"title": strings.ToUpper(page.Name),
}
if page.Codes.DATA.Code != "" {
err := jsoniter.UnmarshalFromString(page.Codes.DATA.Code, &setting)
if err != nil {
return nil, nil, err
}
}
return nil, setting, nil
}
// Exec get the data
func (page *Page) Exec(request *Request) (Data, error) {
if page.Codes.DATA.Code == "" {
return map[string]interface{}{}, nil
}
data, err := request.ExecString(page.Codes.DATA.Code)
if err != nil {
return nil, err
}
return data, nil
}