74 lines
1.3 KiB
Go
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
|
|
}
|