From 5d13b84c7a1e8436fe84095a8f12c2f4511de3fc Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Tue, 31 Aug 2021 20:39:56 +0300 Subject: [PATCH] add micro.codec.Frame special type handling Signed-off-by: Vasiliy Tolstov --- http.go | 1 + util.go | 32 +++++++++++++++++--------------- variables.go | 1 + 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/http.go b/http.go index 03cdaf3..ef55026 100644 --- a/http.go +++ b/http.go @@ -29,6 +29,7 @@ func (g *Generator) httpGenerate(component string, plugin *protogen.Plugin, genC gfile.Import(contextPackage) gfile.Import(microApiPackage) + if genClient { gfile.Import(microClientPackage) gfile.Import(microClientHttpPackage) diff --git a/util.go b/util.go index 96fffaa..0ac1564 100644 --- a/util.go +++ b/util.go @@ -10,19 +10,17 @@ import ( "google.golang.org/protobuf/proto" ) -var ( - httpMethodMap = map[string]string{ - "GET": "MethodGet", - "HEAD": "MethodHead", - "POST": "MethodPost", - "PUT": "MethodPut", - "PATCH": "MethodPatch", - "DELETE": "MethodDelete", - "CONNECT": "MethodConnect", - "OPTIONS": "MethodOptions", - "TRACE": "MethodTrace", - } -) +var httpMethodMap = map[string]string{ + "GET": "MethodGet", + "HEAD": "MethodHead", + "POST": "MethodPost", + "PUT": "MethodPut", + "PATCH": "MethodPatch", + "DELETE": "MethodDelete", + "CONNECT": "MethodConnect", + "OPTIONS": "MethodOptions", + "TRACE": "MethodTrace", +} func unexport(s string) string { return strings.ToLower(s[:1]) + s[1:] @@ -30,7 +28,7 @@ func unexport(s string) string { func generateServiceClient(gfile *protogen.GeneratedFile, service *protogen.Service) { serviceName := service.GoName - //if rule, ok := getMicroApiService(service); ok { + // if rule, ok := getMicroApiService(service); ok { // gfile.P("// client wrappers ", strings.Join(rule.ClientWrappers, ", ")) // } gfile.P("type ", unexport(serviceName), "Client struct {") @@ -62,7 +60,11 @@ func generateServiceClientMethods(gfile *protogen.GeneratedFile, service *protog if strings.HasPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".") { ref = strings.TrimPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".") } - gfile.P(`errmap["`, rsp.Name, `"] = &`, ref, "{}") + if ref == "micro.codec.Frame" { + gfile.P(`errmap["`, rsp.Name, `"] = &`, microCodecPackage.Ident("Frame"), "{}") + } else { + gfile.P(`errmap["`, rsp.Name, `"] = &`, ref, "{}") + } } } } diff --git a/variables.go b/variables.go index 250b9db..5c4ed35 100644 --- a/variables.go +++ b/variables.go @@ -15,6 +15,7 @@ var ( microClientPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/client") microServerPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/server") microClientHttpPackage = protogen.GoImportPath("github.com/unistack-org/micro-client-http/v3") + microCodecPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/codec") timePackage = protogen.GoImportPath("time") deprecationComment = "// Deprecated: Do not use." versionComment = "v3.4.2"