@@ -15,8 +15,12 @@ import (
1515
1616const defaultLogicPackage = "logic"
1717
18- //go:embed handler.tpl
19- var handlerTemplate string
18+ var (
19+ //go:embed handler.tpl
20+ handlerTemplate string
21+ //go:embed sse_handler.tpl
22+ sseHandlerTemplate string
23+ )
2024
2125func genHandler (dir , rootPkg string , cfg * config.Config , group spec.Group , route spec.Route ) error {
2226 handler := getHandlerName (route )
@@ -32,19 +36,26 @@ func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route
3236 return err
3337 }
3438
39+ var builtinTemplate = handlerTemplate
40+ sse := group .GetAnnotation ("sse" )
41+ if sse == "true" {
42+ builtinTemplate = sseHandlerTemplate
43+ }
44+
3545 return genFile (fileGenConfig {
3646 dir : dir ,
3747 subdir : getHandlerFolderPath (group , route ),
3848 filename : filename + ".go" ,
3949 templateName : "handlerTemplate" ,
4050 category : category ,
4151 templateFile : handlerTemplateFile ,
42- builtinTemplate : handlerTemplate ,
52+ builtinTemplate : builtinTemplate ,
4353 data : map [string ]any {
4454 "PkgName" : pkgName ,
4555 "ImportPackages" : genHandlerImports (group , route , rootPkg ),
4656 "HandlerName" : handler ,
4757 "RequestType" : util .Title (route .RequestTypeName ()),
58+ "ResponseType" : responseGoTypeName (route , typesPacket ),
4859 "LogicName" : logicName ,
4960 "LogicType" : strings .Title (getLogicName (route )),
5061 "Call" : strings .Title (strings .TrimSuffix (handler , "Handler" )),
@@ -73,7 +84,8 @@ func genHandlerImports(group spec.Group, route spec.Route, parentPkg string) str
7384 fmt .Sprintf ("\" %s\" " , pathx .JoinPackages (parentPkg , getLogicFolderPath (group , route ))),
7485 fmt .Sprintf ("\" %s\" " , pathx .JoinPackages (parentPkg , contextDir )),
7586 }
76- if len (route .RequestTypeName ()) > 0 {
87+ sse := group .GetAnnotation ("sse" )
88+ if len (route .RequestTypeName ()) > 0 || sse == "true" {
7789 imports = append (imports , fmt .Sprintf ("\" %s\" \n " , pathx .JoinPackages (parentPkg , typesDir )))
7890 }
7991
0 commit comments