mirror of
https://github.com/foomo/gotsrpc.git
synced 2025-10-16 12:35:35 +00:00
extracted renderImports
This commit is contained in:
parent
c1fd91a7ff
commit
b3976ed963
103
go.go
103
go.go
@ -186,18 +186,7 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
imports := ""
|
g.l(renderImports(aliases, packageName))
|
||||||
for packageName, alias := range aliases {
|
|
||||||
imports += alias + " \"" + packageName + "\"\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
g.l(`
|
|
||||||
// Code generated by gotsrpc https://github.com/foomo/gotsrpc DO NOT EDIT.
|
|
||||||
package ` + packageName + `
|
|
||||||
import (
|
|
||||||
` + imports + `
|
|
||||||
)
|
|
||||||
`)
|
|
||||||
for _, service := range services {
|
for _, service := range services {
|
||||||
// Check if we should render this service as ts rcp
|
// Check if we should render this service as ts rcp
|
||||||
// Note: remove once there's a separate gorcp generator
|
// Note: remove once there's a separate gorcp generator
|
||||||
@ -283,18 +272,14 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
|
|
||||||
skipArgI := 0
|
skipArgI := 0
|
||||||
|
|
||||||
for argI, arg := range method.Args {
|
nonHTTPReleatedArgs := goMethodArgsWithoutHTTPContextRelatedArgs(method)
|
||||||
|
|
||||||
|
isSessionRequest = len(method.Args)-len(nonHTTPReleatedArgs) == 2
|
||||||
|
|
||||||
|
for _, arg := range nonHTTPReleatedArgs {
|
||||||
|
|
||||||
argName := "arg_" + arg.Name //strconv.Itoa(argI)
|
argName := "arg_" + arg.Name //strconv.Itoa(argI)
|
||||||
|
|
||||||
if argI == 0 && arg.Value.isHTTPResponseWriter() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if argI == 1 && arg.Value.isHTTPRequest() {
|
|
||||||
isSessionRequest = true
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
//argsDecls = append(argsDecls, argName+" := "+arg.Value.emptyLiteral(aliases))
|
//argsDecls = append(argsDecls, argName+" := "+arg.Value.emptyLiteral(aliases))
|
||||||
argsDecls = append(argsDecls, argName+" "+arg.Value.goType(aliases, packageName))
|
argsDecls = append(argsDecls, argName+" "+arg.Value.goType(aliases, packageName))
|
||||||
args = append(args, "&"+argName)
|
args = append(args, "&"+argName)
|
||||||
@ -369,18 +354,8 @@ func renderTSRPCServiceClients(services ServiceList, fullPackageName string, pac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
imports := ""
|
g.l(renderImports(aliases, packageName))
|
||||||
for packageName, alias := range aliases {
|
|
||||||
imports += alias + " \"" + packageName + "\"\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
g.l(`
|
|
||||||
// Code generated by gotsrpc https://github.com/foomo/gotsrpc DO NOT EDIT.
|
|
||||||
package ` + packageName + `
|
|
||||||
import (
|
|
||||||
` + imports + `
|
|
||||||
)
|
|
||||||
`)
|
|
||||||
for _, service := range services {
|
for _, service := range services {
|
||||||
// Check if we should render this service as ts rcp
|
// Check if we should render this service as ts rcp
|
||||||
// Note: remove once there's a separate gorcp generator
|
// Note: remove once there's a separate gorcp generator
|
||||||
@ -409,7 +384,7 @@ func renderTSRPCServiceClients(services ServiceList, fullPackageName string, pac
|
|||||||
for _, method := range service.Methods {
|
for _, method := range service.Methods {
|
||||||
args := []string{}
|
args := []string{}
|
||||||
params := []string{}
|
params := []string{}
|
||||||
for _, a := range method.Args {
|
for _, a := range goMethodArgsWithoutHTTPContextRelatedArgs(method) {
|
||||||
args = append(args, a.Name)
|
args = append(args, a.Name)
|
||||||
params = append(params, a.Name+" "+a.Value.goType(aliases, fullPackageName))
|
params = append(params, a.Name+" "+a.Value.goType(aliases, fullPackageName))
|
||||||
}
|
}
|
||||||
@ -459,18 +434,7 @@ func renderGoRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
imports := ""
|
g.l(renderImports(aliases, packageName))
|
||||||
for packageName, alias := range aliases {
|
|
||||||
imports += alias + " \"" + packageName + "\"\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
g.l(`
|
|
||||||
// Code generated by gotsrpc https://github.com/foomo/gotsrpc DO NOT EDIT.
|
|
||||||
package ` + packageName + `
|
|
||||||
import (
|
|
||||||
` + imports + `
|
|
||||||
)
|
|
||||||
`)
|
|
||||||
|
|
||||||
for _, service := range services {
|
for _, service := range services {
|
||||||
if !config.IsGoRPC(service.Name) {
|
if !config.IsGoRPC(service.Name) {
|
||||||
@ -492,7 +456,7 @@ func renderGoRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
for _, method := range service.Methods {
|
for _, method := range service.Methods {
|
||||||
// Request type
|
// Request type
|
||||||
g.l(ucfirst(service.Name+method.Name) + `Request struct {`)
|
g.l(ucfirst(service.Name+method.Name) + `Request struct {`)
|
||||||
for _, a := range method.Args {
|
for _, a := range goMethodArgsWithoutHTTPContextRelatedArgs(method) {
|
||||||
g.l(ucfirst(a.Name) + ` ` + a.Value.goType(aliases, fullPackageName))
|
g.l(ucfirst(a.Name) + ` ` + a.Value.goType(aliases, fullPackageName))
|
||||||
}
|
}
|
||||||
g.l(`}`)
|
g.l(`}`)
|
||||||
@ -561,7 +525,12 @@ func renderGoRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
g.l(`switch funcName {`)
|
g.l(`switch funcName {`)
|
||||||
for _, method := range service.Methods {
|
for _, method := range service.Methods {
|
||||||
argParams := []string{}
|
argParams := []string{}
|
||||||
for _, a := range method.Args {
|
nonHTTPRelatedMethodArgs := goMethodArgsWithoutHTTPContextRelatedArgs(method)
|
||||||
|
diffNONHTTPRelatedMethodArgs := len(method.Args) - len(nonHTTPRelatedMethodArgs)
|
||||||
|
for i := 0; i < diffNONHTTPRelatedMethodArgs; i++ {
|
||||||
|
argParams = append(argParams, "nil")
|
||||||
|
}
|
||||||
|
for _, a := range nonHTTPRelatedMethodArgs {
|
||||||
argParams = append(argParams, "req."+ucfirst(a.Name))
|
argParams = append(argParams, "req."+ucfirst(a.Name))
|
||||||
}
|
}
|
||||||
rets := []string{}
|
rets := []string{}
|
||||||
@ -575,7 +544,7 @@ func renderGoRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
|||||||
retParams = append(retParams, ucfirst(name)+`: `+name)
|
retParams = append(retParams, ucfirst(name)+`: `+name)
|
||||||
}
|
}
|
||||||
g.l(`case "` + service.Name + method.Name + `Request":`)
|
g.l(`case "` + service.Name + method.Name + `Request":`)
|
||||||
if len(argParams) > 0 {
|
if len(nonHTTPRelatedMethodArgs) > 0 {
|
||||||
g.l(`req := request.(` + service.Name + method.Name + `Request)`)
|
g.l(`req := request.(` + service.Name + method.Name + `Request)`)
|
||||||
}
|
}
|
||||||
if len(rets) > 0 {
|
if len(rets) > 0 {
|
||||||
@ -625,13 +594,7 @@ func renderGoRPCServiceClients(services ServiceList, fullPackageName string, pac
|
|||||||
imports += alias + " \"" + packageName + "\"\n"
|
imports += alias + " \"" + packageName + "\"\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
g.l(`
|
g.l(renderImports(aliases, packageName))
|
||||||
// Code generated by gotsrpc https://github.com/foomo/gotsrpc DO NOT EDIT.
|
|
||||||
package ` + packageName + `
|
|
||||||
import (
|
|
||||||
` + imports + `
|
|
||||||
)
|
|
||||||
`)
|
|
||||||
for _, service := range services {
|
for _, service := range services {
|
||||||
if !config.IsGoRPC(service.Name) {
|
if !config.IsGoRPC(service.Name) {
|
||||||
continue
|
continue
|
||||||
@ -668,7 +631,7 @@ func renderGoRPCServiceClients(services ServiceList, fullPackageName string, pac
|
|||||||
for _, method := range service.Methods {
|
for _, method := range service.Methods {
|
||||||
args := []string{}
|
args := []string{}
|
||||||
params := []string{}
|
params := []string{}
|
||||||
for _, a := range method.Args {
|
for _, a := range goMethodArgsWithoutHTTPContextRelatedArgs(method) {
|
||||||
args = append(args, ucfirst(a.Name)+`: `+a.Name)
|
args = append(args, ucfirst(a.Name)+`: `+a.Name)
|
||||||
params = append(params, a.Name+" "+a.Value.goType(aliases, fullPackageName))
|
params = append(params, a.Name+" "+a.Value.goType(aliases, fullPackageName))
|
||||||
}
|
}
|
||||||
@ -746,3 +709,31 @@ func RenderGoRPCClients(services ServiceList, longPackageName, packageName strin
|
|||||||
gocode = g.string()
|
gocode = g.string()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func goMethodArgsWithoutHTTPContextRelatedArgs(m *Method) (filteredArgs []*Field) {
|
||||||
|
filteredArgs = []*Field{}
|
||||||
|
for argI, arg := range m.Args {
|
||||||
|
if argI == 0 && arg.Value.isHTTPResponseWriter() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if argI == 1 && arg.Value.isHTTPRequest() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
filteredArgs = append(filteredArgs, arg)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func renderImports(aliases map[string]string, packageName string) string {
|
||||||
|
imports := ""
|
||||||
|
for importPath, alias := range aliases {
|
||||||
|
imports += alias + " \"" + importPath + "\"\n"
|
||||||
|
}
|
||||||
|
return `
|
||||||
|
// Code generated by gotsrpc https://github.com/foomo/gotsrpc DO NOT EDIT.
|
||||||
|
package ` + packageName + `
|
||||||
|
import (
|
||||||
|
` + imports + `
|
||||||
|
)
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user