api文件中使用group时生成的handler和logic的包名应该为group的名字 (#545)

* api文件中使用group时生成的handler和logic的包名应该为group的名字

* Update genhandlers.go

fix errors.

Co-authored-by: Kevin Wan <wanjunfeng@gmail.com>
master
shenbaise9527 3 years ago committed by GitHub
parent d8905b9e9e
commit bc92b57bdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,7 +13,7 @@ import (
"github.com/tal-tech/go-zero/tools/goctl/vars"
)
const handlerTemplate = `package handler
const handlerTemplate = `package {{.PkgName}}
import (
"net/http"
@ -30,7 +30,7 @@ func {{.HandlerName}}(ctx *svc.ServiceContext) http.HandlerFunc {
return
}
{{end}}l := logic.New{{.LogicType}}(r.Context(), ctx)
{{end}}l := {{.LogicName}}.New{{.LogicType}}(r.Context(), ctx)
{{if .HasResp}}resp, {{end}}err := l.{{.Call}}({{if .HasRequest}}req{{end}})
if err != nil {
httpx.Error(w, err)
@ -42,9 +42,11 @@ func {{.HandlerName}}(ctx *svc.ServiceContext) http.HandlerFunc {
`
type handlerInfo struct {
PkgName string
ImportPackages string
HandlerName string
RequestType string
LogicName string
LogicType string
Call string
HasResp bool
@ -54,18 +56,28 @@ type handlerInfo struct {
func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
handler := getHandlerName(route)
if getHandlerFolderPath(group, route) != handlerDir {
handlerPath := getHandlerFolderPath(group, route)
pkgName := handlerPath[strings.LastIndex(handlerPath, "/")+1:]
logicName := "logic"
if handlerPath != handlerDir {
handler = strings.Title(handler)
logicName = pkgName
}
parentPkg, err := getParentPackage(dir)
if err != nil {
return err
}
goctlVersion := version.GetGoctlVersion()
// todo(anqiansong): This will be removed after a certain number of production versions of goctl (probably 5)
after1_1_10 := version.IsVersionGreaterThan(goctlVersion, "1.1.10")
return doGenToFile(dir, handler, cfg, group, route, handlerInfo{
ImportPackages: genHandlerImports(group, route, rootPkg),
PkgName: pkgName,
ImportPackages: genHandlerImports(group, route, parentPkg),
HandlerName: handler,
After1_1_10: after1_1_10,
RequestType: util.Title(route.RequestTypeName()),
LogicName: logicName,
LogicType: strings.Title(getLogicName(route)),
Call: strings.Title(strings.TrimSuffix(handler, "Handler")),
HasResp: len(route.ResponseTypeName()) > 0,

@ -12,7 +12,7 @@ import (
"github.com/tal-tech/go-zero/tools/goctl/vars"
)
const logicTemplate = `package logic
const logicTemplate = `package {{.pkgName}}
import (
{{.imports}}
@ -78,15 +78,17 @@ func genLogicByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group,
requestString = "req " + requestGoTypeName(route, typesPacket)
}
subDir := getLogicFolderPath(group, route)
return genFile(fileGenConfig{
dir: dir,
subdir: getLogicFolderPath(group, route),
subdir: subDir,
filename: goFile + ".go",
templateName: "logicTemplate",
category: category,
templateFile: logicTemplateFile,
builtinTemplate: logicTemplate,
data: map[string]string{
"pkgName": subDir[strings.LastIndex(subDir, "/")+1:],
"imports": imports,
"logic": strings.Title(logic),
"function": strings.Title(strings.TrimSuffix(logic, "Logic")),

Loading…
Cancel
Save