add micro.codec.Frame special type handling

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2021-08-31 20:39:56 +03:00
parent ee4d83458f
commit 5d13b84c7a
3 changed files with 19 additions and 15 deletions

View File

@ -29,6 +29,7 @@ func (g *Generator) httpGenerate(component string, plugin *protogen.Plugin, genC
gfile.Import(contextPackage) gfile.Import(contextPackage)
gfile.Import(microApiPackage) gfile.Import(microApiPackage)
if genClient { if genClient {
gfile.Import(microClientPackage) gfile.Import(microClientPackage)
gfile.Import(microClientHttpPackage) gfile.Import(microClientHttpPackage)

12
util.go
View File

@ -10,8 +10,7 @@ import (
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
var ( var httpMethodMap = map[string]string{
httpMethodMap = map[string]string{
"GET": "MethodGet", "GET": "MethodGet",
"HEAD": "MethodHead", "HEAD": "MethodHead",
"POST": "MethodPost", "POST": "MethodPost",
@ -21,8 +20,7 @@ var (
"CONNECT": "MethodConnect", "CONNECT": "MethodConnect",
"OPTIONS": "MethodOptions", "OPTIONS": "MethodOptions",
"TRACE": "MethodTrace", "TRACE": "MethodTrace",
} }
)
func unexport(s string) string { func unexport(s string) string {
return strings.ToLower(s[:1]) + s[1:] return strings.ToLower(s[:1]) + s[1:]
@ -30,7 +28,7 @@ func unexport(s string) string {
func generateServiceClient(gfile *protogen.GeneratedFile, service *protogen.Service) { func generateServiceClient(gfile *protogen.GeneratedFile, service *protogen.Service) {
serviceName := service.GoName 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("// client wrappers ", strings.Join(rule.ClientWrappers, ", "))
// } // }
gfile.P("type ", unexport(serviceName), "Client struct {") gfile.P("type ", unexport(serviceName), "Client struct {")
@ -62,10 +60,14 @@ func generateServiceClientMethods(gfile *protogen.GeneratedFile, service *protog
if strings.HasPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".") { if strings.HasPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".") {
ref = strings.TrimPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".") ref = strings.TrimPrefix(ref, "."+string(service.Desc.ParentFile().Package())+".")
} }
if ref == "micro.codec.Frame" {
gfile.P(`errmap["`, rsp.Name, `"] = &`, microCodecPackage.Ident("Frame"), "{}")
} else {
gfile.P(`errmap["`, rsp.Name, `"] = &`, ref, "{}") gfile.P(`errmap["`, rsp.Name, `"] = &`, ref, "{}")
} }
} }
} }
}
gfile.P("opts = append(opts,") gfile.P("opts = append(opts,")
gfile.P(microClientHttpPackage.Ident("ErrorMap"), "(errmap),") gfile.P(microClientHttpPackage.Ident("ErrorMap"), "(errmap),")

View File

@ -15,6 +15,7 @@ var (
microClientPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/client") microClientPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/client")
microServerPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/server") microServerPackage = protogen.GoImportPath("github.com/unistack-org/micro/v3/server")
microClientHttpPackage = protogen.GoImportPath("github.com/unistack-org/micro-client-http/v3") 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") timePackage = protogen.GoImportPath("time")
deprecationComment = "// Deprecated: Do not use." deprecationComment = "// Deprecated: Do not use."
versionComment = "v3.4.2" versionComment = "v3.4.2"