@@ -3,7 +3,6 @@ package gogen
3
3
import (
4
4
_ "embed"
5
5
"fmt"
6
- "path"
7
6
"strings"
8
7
9
8
"github.com/dxc0522/goctlx/api/spec"
@@ -13,40 +12,31 @@ import (
13
12
"github.com/dxc0522/goctlx/util/pathx"
14
13
)
15
14
16
- const defaultLogicPackage = "logic"
17
-
18
15
//go:embed handler.tpl
19
16
var handlerTemplate string
20
17
21
- func genHandler (dir , rootPkg string , cfg * config.Config , group spec.Group , route spec.Route ) error {
18
+ func genHandler (dir , rootPkg string , cfg * config.Config , api * spec. ApiSpec , group spec.Group , route spec.Route ) error {
22
19
handler := getHandlerName (route )
23
- handlerPath := getHandlerFolderPath (group , route )
24
- pkgName := handlerPath [strings .LastIndex (handlerPath , "/" )+ 1 :]
25
- logicName := defaultLogicPackage
26
- if handlerPath != handlerDir {
27
- handler = strings .Title (handler )
28
- logicName = pkgName
29
- }
30
20
filename , err := format .FileNamingFormat (cfg .NamingFormat , handler )
31
21
if err != nil {
32
22
return err
33
23
}
34
24
35
25
return genFile (fileGenConfig {
36
26
dir : dir ,
37
- subdir : getHandlerFolderPath ( group , route ) ,
38
- filename : filename + ".go" ,
27
+ subdir : handlerDir ,
28
+ filename : filename + "_gen .go" ,
39
29
templateName : "handlerTemplate" ,
40
30
category : category ,
41
31
templateFile : handlerTemplateFile ,
42
32
builtinTemplate : handlerTemplate ,
43
33
data : map [string ]any {
44
- "PkgName" : pkgName ,
45
- "ImportPackages" : genHandlerImports (group , route , rootPkg ),
46
- "HandlerName" : handler ,
34
+ "PkgName" : handlerDir ,
35
+ "ImportPackages" : genHandlerImports (route , rootPkg ),
36
+ "HandlerName" : strings . Title ( handler ) ,
47
37
"RequestType" : util .Title (route .RequestTypeName ()),
48
- "LogicName" : logicName ,
49
- "LogicType" : strings .Title (getLogicName ( route ) ),
38
+ "LogicName" : logicDir ,
39
+ "LogicType" : strings .Title (api . Service . Name + "Logic" ),
50
40
"Call" : strings .Title (strings .TrimSuffix (handler , "Handler" )),
51
41
"HasResp" : len (route .ResponseTypeName ()) > 0 ,
52
42
"HasRequest" : len (route .RequestTypeName ()) > 0 ,
@@ -59,7 +49,7 @@ func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route
59
49
func genHandlers (dir , rootPkg string , cfg * config.Config , api * spec.ApiSpec ) error {
60
50
for _ , group := range api .Service .Groups {
61
51
for _ , route := range group .Routes {
62
- if err := genHandler (dir , rootPkg , cfg , group , route ); err != nil {
52
+ if err := genHandler (dir , rootPkg , cfg , api , group , route ); err != nil {
63
53
return err
64
54
}
65
55
}
@@ -68,9 +58,9 @@ func genHandlers(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) err
68
58
return nil
69
59
}
70
60
71
- func genHandlerImports (group spec. Group , route spec.Route , parentPkg string ) string {
61
+ func genHandlerImports (route spec.Route , parentPkg string ) string {
72
62
imports := []string {
73
- fmt .Sprintf ("\" %s\" " , pathx .JoinPackages (parentPkg , getLogicFolderPath ( group , route ) )),
63
+ fmt .Sprintf ("\" %s\" " , pathx .JoinPackages (parentPkg , logicDir )),
74
64
fmt .Sprintf ("\" %s\" " , pathx .JoinPackages (parentPkg , contextDir )),
75
65
}
76
66
if len (route .RequestTypeName ()) > 0 {
@@ -89,21 +79,6 @@ func getHandlerBaseName(route spec.Route) (string, error) {
89
79
return handler , nil
90
80
}
91
81
92
- func getHandlerFolderPath (group spec.Group , route spec.Route ) string {
93
- folder := route .GetAnnotation (groupProperty )
94
- if len (folder ) == 0 {
95
- folder = group .GetAnnotation (groupProperty )
96
- if len (folder ) == 0 {
97
- return handlerDir
98
- }
99
- }
100
-
101
- folder = strings .TrimPrefix (folder , "/" )
102
- folder = strings .TrimSuffix (folder , "/" )
103
-
104
- return path .Join (handlerDir , folder )
105
- }
106
-
107
82
func getHandlerName (route spec.Route ) string {
108
83
handler , err := getHandlerBaseName (route )
109
84
if err != nil {
0 commit comments