Skip to content

Commit 4bfbb1e

Browse files
enhancement: added related changes for hasRestClients and hasGrpcClients in go
1 parent accc9e1 commit 4bfbb1e

File tree

5 files changed

+256
-106
lines changed

5 files changed

+256
-106
lines changed

core/internal/languages/golang/frameworks/common-files/copier.go

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
corenode "github.com/intelops/compage/core/internal/core/node"
66
"github.com/intelops/compage/core/internal/languages/executor"
77
"github.com/intelops/compage/core/internal/utils"
8+
"golang.org/x/text/cases"
9+
"golang.org/x/text/language"
810
"strings"
911
)
1012

@@ -21,10 +23,10 @@ type Copier struct {
2123
TemplatesRootPath string
2224
Data map[string]interface{}
2325
IsGrpcServer bool
24-
IsGrpcClient bool
26+
HasGrpcClients bool
2527
GrpcServerPort string
2628
IsRestServer bool
27-
IsRestClient bool
29+
HasRestClients bool
2830
RestServerPort string
2931
RestResources []*corenode.Resource
3032
GrpcResources []*corenode.Resource
@@ -40,6 +42,10 @@ type resourceData struct {
4042
CapsResourceNamePlural string
4143
}
4244

45+
type clientData struct {
46+
SourceNodeID string
47+
}
48+
4349
func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesRootPath string, isRestServer bool, restServerPort string, isGrpcServer bool, grpcServerPort string, isRestSQLDB bool, restSQLDB string, isGrpcSQLDB bool, grpcSQLDB string, restResources []*corenode.Resource, grpcResources []*corenode.Resource, restClients []*corenode.RestClient, grpcClients []*corenode.GrpcClient) *Copier {
4450

4551
pluralizeClient := pluralize.NewClient()
@@ -64,8 +70,8 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
6470
data["GrpcServerPort"] = grpcServerPort
6571
data["IsGrpcServer"] = isGrpcServer
6672
// if grpcClients slice has elements
67-
isGrpcClient := len(grpcClients) > 0
68-
data["IsGrpcClient"] = isGrpcClient
73+
HasGrpcClients := len(grpcClients) > 0
74+
data["HasGrpcClients"] = HasGrpcClients
6975

7076
// set all grpcResources for main.go.tmpl
7177
var restResourcesData []resourceData
@@ -81,8 +87,16 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
8187
data["RestServerPort"] = restServerPort
8288
data["IsRestServer"] = isRestServer
8389
// if restClients slice has elements
84-
isRestClient := len(restClients) > 0
85-
data["IsRestClient"] = isRestClient
90+
hasRestClients := len(restClients) > 0
91+
data["HasRestClients"] = hasRestClients
92+
data["HasRestClients"] = hasRestClients
93+
if hasRestClients {
94+
var d []clientData
95+
for _, restClient := range restClients {
96+
d = append(d, clientData{SourceNodeID: strings.Replace(cases.Title(language.Und, cases.NoLower).String(restClient.SourceNodeID), "-", "_", -1)})
97+
}
98+
data["RestClients"] = d
99+
}
86100

87101
data["IsRestSQLDB"] = isRestSQLDB
88102
if isRestSQLDB {
@@ -99,11 +113,11 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
99113
NodeDirectoryName: nodeDirectoryName,
100114
Data: data,
101115
IsGrpcServer: isGrpcServer,
102-
IsGrpcClient: isGrpcClient,
116+
HasGrpcClients: HasGrpcClients,
103117
GrpcServerPort: grpcServerPort,
104118
RestServerPort: restServerPort,
105119
IsRestServer: isRestServer,
106-
IsRestClient: isRestClient,
120+
HasRestClients: hasRestClients,
107121
GrpcResources: grpcResources,
108122
GrpcClients: grpcClients,
109123
RestResources: restResources,

core/internal/languages/golang/frameworks/go-gin-server/copier.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type Copier struct {
4646
TemplatesRootPath string
4747
Data map[string]interface{}
4848
IsRestServer bool
49-
IsRestClient bool
49+
HasRestClients bool
5050
SQLDB string
5151
IsSQLDB bool
5252
RestServerPort string
@@ -55,7 +55,7 @@ type Copier struct {
5555
PluralizeClient *pluralize.Client
5656
}
5757

58-
type resourceData struct {
58+
type serverResourceData struct {
5959
SmallKebabCaseResourceNameSingular string
6060
SmallSnakeCaseResourceNameSingular string
6161
SmallResourceNameSingular string
@@ -78,10 +78,10 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
7878
data["IsSQLDB"] = isSQLDB
7979
// set all resources for main.go.tmpl
8080
if isRestServer {
81-
var resourcesData []resourceData
81+
var serverResourcesData []serverResourceData
8282
for _, r := range resources {
8383
lowerCamelResourceName := strcase.ToLowerCamel(r.Name)
84-
resourcesData = append(resourcesData, resourceData{
84+
serverResourcesData = append(serverResourcesData, serverResourceData{
8585
SmallKebabCaseResourceNameSingular: strcase.ToKebab(r.Name),
8686
SmallSnakeCaseResourceNameSingular: strcase.ToSnake(r.Name),
8787
SmallResourceNameSingular: lowerCamelResourceName,
@@ -90,20 +90,19 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
9090
CapsResourceNamePlural: pluralizeClient.Plural(r.Name),
9191
})
9292
}
93-
data["RestResources"] = resourcesData
93+
data["RestResources"] = serverResourcesData
9494
data["RestServerPort"] = restServerPort
9595
data["IsRestServer"] = isRestServer
9696
}
9797
// if restClients slice has elements
98-
isRestClient := len(restClients) > 0
99-
data["IsRestClient"] = isRestClient
98+
hasRestClients := len(restClients) > 0
10099

101100
return &Copier{
102101
TemplatesRootPath: templatesRootPath,
103102
NodeDirectoryName: nodeDirectoryName,
104103
Data: data,
105104
IsRestServer: isRestServer,
106-
IsRestClient: isRestClient,
105+
HasRestClients: hasRestClients,
107106
SQLDB: sqlDB,
108107
IsSQLDB: isSQLDB,
109108
Resources: resources,
@@ -146,7 +145,7 @@ func (c Copier) createRestServerDirectories() error {
146145
if err := utils.CreateDirectories(sqlDBClientsDirectory); err != nil {
147146
return err
148147
}
149-
resources := c.Data["RestResources"].([]resourceData)
148+
resources := c.Data["RestResources"].([]serverResourceData)
150149
for _, r := range resources {
151150
resourceClientDirectory := c.NodeDirectoryName + SQLDBClientsPath + "/" + r.SmallKebabCaseResourceNameSingular + "-client"
152151
if err := utils.CreateDirectories(resourceClientDirectory); err != nil {
@@ -247,6 +246,7 @@ func (c Copier) copyRestClientResourceFiles(restClient *corenode.RestClient) err
247246
/// add resource specific data to map in c needed for templates.
248247
c.Data["RestClientPort"] = restClient.Port
249248
c.Data["RestClientServiceName"] = restClient.SourceNodeName
249+
c.Data["RestClientSourceNodeID"] = strings.Replace(cases.Title(language.Und, cases.NoLower).String(restClient.SourceNodeID), "-", "_", -1)
250250

251251
// copy restClient files to generated project.
252252
targetResourceClientFileName := c.NodeDirectoryName + RestClientPath + "/" + restClient.SourceNodeName + "-" + ClientFile
@@ -399,7 +399,7 @@ func (c Copier) CreateRestServer() error {
399399
// CreateRestClients creates/copies relevant files to generated project
400400
func (c Copier) CreateRestClients() error {
401401
// if the node is client, add client code
402-
if c.IsRestClient {
402+
if c.HasRestClients {
403403
// create directories for client
404404
if err := c.createRestClientDirectories(); err != nil {
405405
return err

core/internal/languages/golang/frameworks/go-grpc-server/copier.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type Copier struct {
5151
TemplatesRootPath string
5252
Data map[string]interface{}
5353
IsGrpcServer bool
54-
IsGrpcClient bool
54+
HasGrpcClients bool
5555
SQLDB string
5656
IsSQLDB bool
5757
GrpcServerPort string
@@ -100,15 +100,15 @@ func NewCopier(userName, repositoryName, nodeName, nodeDirectoryName, templatesR
100100
data["IsGrpcServer"] = isGrpcServer
101101
}
102102
// if grpcClients slice has elements
103-
isGrpcClient := len(grpcClients) > 0
104-
data["IsGrpcClient"] = isGrpcClient
103+
hasGrpcClients := len(grpcClients) > 0
104+
data["HasGrpcClients"] = hasGrpcClients
105105

106106
return &Copier{
107107
TemplatesRootPath: templatesRootPath,
108108
NodeDirectoryName: nodeDirectoryName,
109109
Data: data,
110110
IsGrpcServer: isGrpcServer,
111-
IsGrpcClient: isGrpcClient,
111+
HasGrpcClients: hasGrpcClients,
112112
SQLDB: sqlDB,
113113
IsSQLDB: isSQLDB,
114114
Resources: resources,
@@ -271,7 +271,7 @@ func (c Copier) CopyGrpcClientResourceFiles(grpcClient *corenode.GrpcClient) err
271271
// TODO grpcClient needs too many changes (like referring the .proto and generated files) we can better just have a client created for local grpcServer)
272272
c.Data["GrpcClientPort"] = grpcClient.Port
273273
c.Data["GrpcClientServiceName"] = grpcClient.SourceNodeName
274-
274+
c.Data["GrpcClientSourceNodeID"] = strings.Replace(cases.Title(language.Und, cases.NoLower).String(grpcClient.SourceNodeID), "-", "_", -1)
275275
// copy grpcClient files to generated project.
276276
targetResourceClientFileName := c.NodeDirectoryName + GrpcClientPath + "/" + grpcClient.SourceNodeName + "-" + ClientFile
277277
_, err := utils.CopyFile(targetResourceClientFileName, c.TemplatesRootPath+GrpcClientPath+"/"+ClientFile)
@@ -433,7 +433,7 @@ func (c Copier) CreateGrpcClients() error {
433433
return err
434434
}
435435
// if the node is client, add client code
436-
//if c.IsGrpcClient {
436+
//if c.HasGrpcClients {
437437
// copy files with respect to the names of resources
438438
// TODO need to add a flow based on client details.
439439
//for _, client := range c.GrpcClients {

0 commit comments

Comments
 (0)