Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat:goctl model mongo add easy flag for easy declare. #2073

Merged
merged 6 commits into from Jul 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion tools/goctl/api/docgen/doc.go
Expand Up @@ -18,12 +18,14 @@ import (
var markdownTemplate string

func genDoc(api *spec.ApiSpec, dir, filename string) error {
if len(api.Service.Routes()) == 0 {
return nil
}
fp, _, err := util.MaybeCreateFile(dir, "", filename)
if err != nil {
return err
}
defer fp.Close()

var builder strings.Builder
for index, route := range api.Service.Routes() {
routeComment := route.JoinedDoc()
Expand Down
1 change: 1 addition & 0 deletions tools/goctl/model/cmd.go
Expand Up @@ -83,6 +83,7 @@ func init() {

mongoCmd.Flags().StringSliceVarP(&mongo.VarStringSliceType, "type", "t", nil, "Specified model type name")
mongoCmd.Flags().BoolVarP(&mongo.VarBoolCache, "cache", "c", false, "Generate code with cache [optional]")
mongoCmd.Flags().BoolVarP(&mongo.VarBoolEasy, "easy", "e", false, "Generate code with Auto generated CollectionName for easy declare [optional]")
mongoCmd.Flags().StringVarP(&mongo.VarStringDir, "dir", "d", "", "The target dir")
mongoCmd.Flags().StringVar(&mongo.VarStringStyle, "style", "", "The file naming format, see [https://github.com/zeromicro/go-zero/tree/master/tools/goctl/config/readme.md]")
mongoCmd.Flags().StringVar(&mongo.VarStringHome, "home", "", "The goctl home path of the template, --home and --remote cannot be set at the same time, if they are, --remote has higher priority")
Expand Down
5 changes: 4 additions & 1 deletion tools/goctl/model/mongo/generate/generate.go
Expand Up @@ -16,6 +16,7 @@ import (
type Context struct {
Types []string
Cache bool
Easy bool
Output string
Cfg *config.Config
}
Expand Down Expand Up @@ -82,7 +83,9 @@ func generateCustomModel(ctx *Context) error {
err = util.With("model").Parse(text).GoFmt(true).SaveTo(map[string]interface{}{
"Type": stringx.From(t).Title(),
"lowerType": stringx.From(t).Untitle(),
"snakeType": stringx.From(t).ToSnake(),
"Cache": ctx.Cache,
"Easy": ctx.Easy,
}, output, false)
if err != nil {
return err
Expand All @@ -107,7 +110,7 @@ func generateTypes(ctx *Context) error {
output := filepath.Join(ctx.Output, fn+".go")
if err = util.With("model").Parse(text).GoFmt(true).SaveTo(map[string]interface{}{
"Type": stringx.From(t).Title(),
}, output, false);err!=nil{
}, output, false); err != nil {
return err
}
}
Expand Down
8 changes: 6 additions & 2 deletions tools/goctl/model/mongo/mongo.go
Expand Up @@ -19,6 +19,8 @@ var (
VarStringDir string
// VarBoolCache describes whether cache is enabled.
VarBoolCache bool
// VarBoolEasy describes whether to generate Collection Name in the code for easy declare.
VarBoolEasy bool
// VarStringStyle describes the style.
VarStringStyle string
// VarStringHome describes the goctl home.
Expand All @@ -33,19 +35,20 @@ var (
func Action(_ *cobra.Command, _ []string) error {
tp := VarStringSliceType
c := VarBoolCache
easy := VarBoolEasy
o := strings.TrimSpace(VarStringDir)
s := VarStringStyle
home := VarStringHome
remote := VarStringRemote
branch := VarStringBranch

if len(remote) > 0 {
repo, _ := file.CloneIntoGitHome(remote, branch)
if len(repo) > 0 {
home = repo
}
}

if len(home) > 0 {
pathx.RegisterGoctlHome(home)
}
Expand All @@ -71,6 +74,7 @@ func Action(_ *cobra.Command, _ []string) error {
return generate.Do(&generate.Context{
Types: tp,
Cache: c,
Easy: easy,
Output: a,
Cfg: cfg,
})
Expand Down
16 changes: 14 additions & 2 deletions tools/goctl/model/mongo/template/model_custom.tpl
Expand Up @@ -5,6 +5,10 @@ package model
"github.com/zeromicro/go-zero/core/stores/monc"
){{else}}import "github.com/zeromicro/go-zero/core/stores/mon"{{end}}

{{if .Easy}}
const {{.Type}}CollectionName = "{{.snakeType}}"
{{end}}

var _ {{.Type}}Model = (*custom{{.Type}}Model)(nil)

type (
Expand All @@ -19,10 +23,18 @@ type (
}
)


// New{{.Type}}Model returns a model for the mongo.
func New{{.Type}}Model(url, db, collection string{{if .Cache}}, c cache.CacheConf{{end}}) {{.Type}}Model {
conn := {{if .Cache}}monc{{else}}mon{{end}}.MustNewModel(url, db, collection{{if .Cache}}, c{{end}})
{{if .Easy}}func New{{.Type}}Model(url, db string{{if .Cache}}, c cache.CacheConf{{end}}) {{.Type}}Model {
conn := {{if .Cache}}monc{{else}}mon{{end}}.MustNewModel(url, db, {{.Type}}CollectionName{{if .Cache}}, c{{end}})
return &custom{{.Type}}Model{
default{{.Type}}Model: newDefault{{.Type}}Model(conn),
}
}
{{else}}func New{{.Type}}Model(url, db, collection string{{if .Cache}}, c cache.CacheConf{{end}}) {{.Type}}Model {
conn := {{if .Cache}}monc{{else}}mon{{end}}.MustNewModel(url, db, collection{{if .Cache}}, c{{end}})
return &custom{{.Type}}Model{
default{{.Type}}Model: newDefault{{.Type}}Model(conn),
}
}{{end}}