From db7dcaa12057abde62c78567813ba775aba2b326 Mon Sep 17 00:00:00 2001 From: sjatsh Date: Fri, 23 Oct 2020 21:00:38 +0800 Subject: [PATCH] gen api svc add middleware implement temp code (#151) --- tools/goctl/api/gogen/gensvc.go | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/tools/goctl/api/gogen/gensvc.go b/tools/goctl/api/gogen/gensvc.go index 16ece42a..b7b83882 100644 --- a/tools/goctl/api/gogen/gensvc.go +++ b/tools/goctl/api/gogen/gensvc.go @@ -25,8 +25,20 @@ type ServiceContext struct { } func NewServiceContext(c {{.config}}) *ServiceContext { - return &ServiceContext{Config: c} + return &ServiceContext{ + Config: c, + {{.middlewareAssignment}} + } } + +{{.middlewareImplement}} +` + middlewareImplementCode = `func %s(next http.HandlerFunc) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + // TODO generate middleware implement function, delete after code implementation + } +} + ` ) @@ -57,21 +69,28 @@ func genServiceContext(dir string, api *spec.ApiSpec) error { } var middlewareStr string + var middlewareAssignment string + var middlewareImplement string for _, item := range getMiddleware(api) { middlewareStr += fmt.Sprintf("%s rest.Middleware\n", item) + middlewareAssignment += fmt.Sprintf("%s: %s,\n", item, item) + middlewareImplement += fmt.Sprintf(middlewareImplementCode, item) } var configImport = "\"" + ctlutil.JoinPackages(parentPkg, configDir) + "\"" if len(middlewareStr) > 0 { - configImport += fmt.Sprintf("\n\"%s/rest\"", vars.ProjectOpenSourceUrl) + configImport += "\n\t\"net/http\"" + configImport += fmt.Sprintf("\n\t\"%s/rest\"", vars.ProjectOpenSourceUrl) } t := template.Must(template.New("contextTemplate").Parse(text)) buffer := new(bytes.Buffer) err = t.Execute(buffer, map[string]string{ - "configImport": configImport, - "config": "config.Config", - "middleware": middlewareStr, + "configImport": configImport, + "config": "config.Config", + "middleware": middlewareStr, + "middlewareAssignment": middlewareAssignment, + "middlewareImplement": middlewareImplement, }) if err != nil { return nil