mirror of
https://github.com/foomo/gotsrpc.git
synced 2025-10-16 12:35:35 +00:00
fix pointer for interfaces
This commit is contained in:
parent
c183810bc6
commit
c4dd132ff1
11
go.go
11
go.go
@ -197,15 +197,20 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
||||
continue
|
||||
}
|
||||
|
||||
servicePointer := "*"
|
||||
if service.IsInterface {
|
||||
servicePointer = ""
|
||||
}
|
||||
|
||||
proxyName := service.Name + "GoTSRPCProxy"
|
||||
g.l(`
|
||||
type ` + proxyName + ` struct {
|
||||
EndPoint string
|
||||
allowOrigin []string
|
||||
service *` + service.Name + `
|
||||
service ` + servicePointer + service.Name + `
|
||||
}
|
||||
|
||||
func NewDefault` + proxyName + `(service *` + service.Name + `, allowOrigin []string) *` + proxyName + ` {
|
||||
func NewDefault` + proxyName + `(service ` + servicePointer + service.Name + `, allowOrigin []string) *` + proxyName + ` {
|
||||
return &` + proxyName + `{
|
||||
EndPoint: "` + service.Endpoint + `",
|
||||
allowOrigin : allowOrigin,
|
||||
@ -214,7 +219,7 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
|
||||
}
|
||||
|
||||
|
||||
func New` + proxyName + `(service *` + service.Name + `, endpoint string, allowOrigin []string) *` + proxyName + ` {
|
||||
func New` + proxyName + `(service ` + servicePointer + service.Name + `, endpoint string, allowOrigin []string) *` + proxyName + ` {
|
||||
return &` + proxyName + `{
|
||||
EndPoint: endpoint,
|
||||
allowOrigin : allowOrigin,
|
||||
|
||||
7
model.go
7
model.go
@ -52,9 +52,10 @@ type Field struct {
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
Name string
|
||||
Methods ServiceMethods
|
||||
Endpoint string
|
||||
Name string
|
||||
Methods ServiceMethods
|
||||
Endpoint string
|
||||
IsInterface bool
|
||||
}
|
||||
|
||||
type ServiceMethods []*Method
|
||||
|
||||
@ -69,6 +69,7 @@ func readServiceFile(file *ast.File, packageName string, services ServiceList) e
|
||||
ident := typeSpec.Name
|
||||
trace("that is an interface named", ident.Name)
|
||||
if service, ok := findService(ident.Name); ok {
|
||||
service.IsInterface = true
|
||||
|
||||
if iSpec, ok := typeSpec.Type.(*ast.InterfaceType); ok {
|
||||
for _, fieldDecl := range iSpec.Methods.List {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user