Files
2021-11-04 15:15:11 +08:00

74 lines
1.3 KiB
Go

package controller
import (
"ArmedPolice/utils"
"bytes"
"fmt"
"go/format"
"text/template"
)
const ControllerTemplate = `package {{.Name}}
import (
"ArmedPolice/app/controller/basic"
"ArmedPolice/app/service"
)
type {{.StrutName}} struct{ *service.Session }
type {{.StrutName}}Handle func(session *service.Session) *{{.StrutName}}
func (c *{{.StrutName}}) List() (*basic.PageDataResponse, error) {
return &basic.PageDataResponse{Data: nil, Count: 0}, nil
}
func (c *{{.StrutName}}) Form() error {
return nil
}
func (c *{{.StrutName}}) Delete(id uint64) error {
return nil
}
func New{{.StrutName}}() {{.StrutName}}Handle {
return func(session *service.Session) *{{.StrutName}} {
return &{{.StrutName}}{session}
}
}`
type ControllerFile struct {
// Name is the plugin name. Snack style.
Name string
// StrutName is the struct name.
StrutName string
}
func (v *ControllerFile) Execute(file, tmplName, tmpl string) error {
fmt.Println(file)
f, err := utils.Open(file)
if err != nil {
return err
}
defer f.Close()
temp := new(template.Template)
if temp, err = template.New(tmplName).Parse(tmpl); err != nil {
return err
}
buf := new(bytes.Buffer)
if err = temp.Execute(buf, v); err != nil {
return err
}
out := make([]byte, 0)
if out, err = format.Source(buf.Bytes()); err != nil {
return err
}
_, err = f.Write(out)
return err
}