diff --git a/generator/add_transport.go b/generator/add_transport.go index 42b58c7..4c6e014 100644 --- a/generator/add_transport.go +++ b/generator/add_transport.go @@ -44,7 +44,7 @@ func NewGenerateTransport(name string, gorillaMux bool, transport string, method i := &GenerateTransport{ name: name, gorillaMux: gorillaMux, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(name)), methods: methods, } @@ -196,7 +196,7 @@ func newGenerateHTTPTransport(name string, gorillaMux bool, serviceInterface par t := &generateHTTPTransport{ name: name, methods: methods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_http_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, gorillaMux: gorillaMux, @@ -536,7 +536,7 @@ func newGenerateHTTPTransportBase(name string, gorillaMux bool, serviceInterface methods: methods, gorillaMux: gorillaMux, allMethods: allMethods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_http_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, } @@ -645,9 +645,9 @@ type generateGRPCTransportProto struct { func newGenerateGRPCTransportProto(name string, serviceInterface parser.Interface, methods []string) Gen { t := &generateGRPCTransportProto{ - name: name, + name: utils.GetProtoServiceName(name), methods: methods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_grpc_pb_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, } @@ -695,7 +695,7 @@ func (g *generateGRPCTransportProto) Generate() (err error) { Value: "proto3", }, &proto.Package{ - Name: "pb", + Name: utils.GetProtoPackageName(), }, svc, ) @@ -870,7 +870,7 @@ func newGenerateGRPCTransportBase(name string, serviceInterface parser.Interface name: name, methods: methods, allMethods: allMethods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_grpc_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, } @@ -948,7 +948,7 @@ func (g *generateGRPCTransportBase) Generate() (err error) { jen.Id("options").Map(jen.String()).Index().Qual("github.com/go-kit/kit/transport/grpc", "ServerOption"), }, []jen.Code{ - jen.Qual(pbImport, utils.ToCamelCase(g.name)+"Server"), + jen.Qual(pbImport, utils.GetProtoServiceName(g.name)+"Server"), }, "", jen.Return(jen.Id("&grpcServer").Values(vl)), @@ -973,7 +973,7 @@ func newGenerateGRPCTransport(name string, serviceInterface parser.Interface, me t := &generateGRPCTransport{ name: name, methods: methods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_grpc_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, } diff --git a/generator/generate_client.go b/generator/generate_client.go index 0acb283..d42d3d0 100644 --- a/generator/generate_client.go +++ b/generator/generate_client.go @@ -33,7 +33,7 @@ type GenerateClient struct { func NewGenerateClient(name string, transport string) Gen { i := &GenerateClient{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_client_cmd_path_format"), utils.ToLowerSnakeCase(name)), serviceDestPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(name)), transport: transport, @@ -143,7 +143,7 @@ type generateHTTPClient struct { func newGenerateHTTPClient(name string, serviceInterface parser.Interface, serviceFile *parser.File) Gen { i := &generateHTTPClient{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_http_client_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, serviceFile: serviceFile, @@ -347,7 +347,7 @@ type generateGRPCClient struct { func newGenerateGRPCClient(name string, serviceInterface parser.Interface, serviceFile *parser.File) Gen { i := &generateGRPCClient{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_grpc_client_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, serviceFile: serviceFile, @@ -395,7 +395,7 @@ func (g *generateGRPCClient) Generate() (err error) { "NewClient", ).Call( jen.Id("conn"), - jen.Lit("pb."+utils.ToCamelCase(g.name)), + jen.Lit(utils.GetProtoPackageName()+"."+utils.GetProtoServiceName(g.name)), jen.Lit(m.Name), jen.Id(fmt.Sprintf("encode%sRequest", m.Name)), jen.Id(fmt.Sprintf("decode%sResponse", m.Name)), diff --git a/generator/generate_middleware.go b/generator/generate_middleware.go index 0d1bf66..6d24ea6 100644 --- a/generator/generate_middleware.go +++ b/generator/generate_middleware.go @@ -37,7 +37,7 @@ func NewGenerateMiddleware(name, serviceName string, ep bool) Gen { name: name, serviceName: serviceName, isEndpointMiddleware: ep, - interfaceName: utils.ToCamelCase(serviceName + "Service"), + interfaceName: utils.GetServiceInterfaceName(serviceName), destPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(serviceName)), } i.filePath = path.Join(i.destPath, viper.GetString("gk_service_file_name")) diff --git a/generator/generate_service.go b/generator/generate_service.go index cc0db5e..4b01109 100644 --- a/generator/generate_service.go +++ b/generator/generate_service.go @@ -36,7 +36,7 @@ type GenerateService struct { func NewGenerateService(name, transport string, sMiddleware, gorillaMux, eMiddleware bool, methods []string) Gen { i := &GenerateService{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(name)), sMiddleware: sMiddleware, eMiddleware: eMiddleware, @@ -285,7 +285,7 @@ func newGenerateServiceMiddleware(name string, serviceFile *parser.File, serviceInterface parser.Interface, generateDefaults bool) Gen { gsm := &generateServiceMiddleware{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, serviceFile: serviceFile, @@ -499,7 +499,7 @@ func newGenerateServiceEndpoints(name string, imports []parser.NamedTypeValue, serviceInterface parser.Interface, generateDefaults bool) Gen { gsm := &generateServiceEndpoints{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_endpoint_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, serviceImports: imports, @@ -895,7 +895,7 @@ type generateServiceEndpointsBase struct { func newGenerateServiceEndpointsBase(name string, serviceInterface parser.Interface) Gen { gsm := &generateServiceEndpointsBase{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_endpoint_path_format"), utils.ToLowerSnakeCase(name)), serviceInterface: serviceInterface, } @@ -980,7 +980,7 @@ type generateEndpointMiddleware struct { func newGenerateEndpointMiddleware(name string) Gen { gsm := &generateEndpointMiddleware{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_endpoint_path_format"), utils.ToLowerSnakeCase(name)), } gsm.filePath = path.Join(gsm.destPath, viper.GetString("gk_endpoint_middleware_file_name")) @@ -1490,7 +1490,7 @@ func newGenerateCmd(name string, serviceInterface parser.Interface, t := &generateCmd{ name: name, methods: methods, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_cmd_service_path_format"), utils.ToLowerSnakeCase(name)), httpDestPath: fmt.Sprintf(viper.GetString("gk_http_path_format"), utils.ToLowerSnakeCase(name)), grpcDestPath: fmt.Sprintf(viper.GetString("gk_grpc_path_format"), utils.ToLowerSnakeCase(name)), @@ -1987,7 +1987,7 @@ func (g *generateCmd) generateInitGRPC() (err error) { jen.Id("*grpcAddr"), ), jen.Id("baseServer").Op(":=").Qual("google.golang.org/grpc", "NewServer").Call(), - jen.Qual(pbImport, fmt.Sprintf("Register%sServer", utils.ToCamelCase(g.name))).Call( + jen.Qual(pbImport, fmt.Sprintf("Register%sServer", utils.GetProtoServiceName(g.name))).Call( jen.Id("baseServer"), jen.Id("grpcServer"), ), diff --git a/generator/new_service.go b/generator/new_service.go index 37510da..bbdbe67 100644 --- a/generator/new_service.go +++ b/generator/new_service.go @@ -27,7 +27,7 @@ type NewService struct { func NewNewService(name string) Gen { gs := &NewService{ name: name, - interfaceName: utils.ToCamelCase(name + "Service"), + interfaceName: utils.GetServiceInterfaceName(name), destPath: fmt.Sprintf(viper.GetString("gk_service_path_format"), utils.ToLowerSnakeCase(name)), } gs.filePath = path.Join(gs.destPath, viper.GetString("gk_service_file_name")) diff --git a/main.go b/main.go index e273478..0852119 100644 --- a/main.go +++ b/main.go @@ -72,5 +72,8 @@ func setDefaults() { viper.SetDefault("gk_grpc_compile_file_name", "compile.sh") } viper.SetDefault("gk_service_struct_prefix", "basic") + viper.SetDefault("gk_service_interface_name", "%sService") + viper.SetDefault("gk_proto_service_name", "%s") + viper.SetDefault("gk_proto_package_name", "%s") } diff --git a/utils/utils.go b/utils/utils.go index dee0f9d..411bab9 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -215,3 +215,30 @@ func defaultGOPATH() string { } return "" } + +// GetServiceInterfaceName returns the service interface name +func GetServiceInterfaceName(name string) string { + format := viper.GetString("gk_service_interface_name") + if format == "" { + format = "%sService" + } + return fmt.Sprintf(format, ToCamelCase(name)) +} + +// GetProtoServiceName returns the protobuf service name +func GetProtoServiceName(name string) string { + format := viper.GetString("gk_proto_service_name") + if format == "" { + format = "%s" + } + return ToCamelCase(fmt.Sprintf(format, name)) +} + +// GetProtoPackageName returns the protobuf package name +func GetProtoPackageName() string { + format := viper.GetString("gk_proto_package_name") + if format == "" { + return "pb" + } + return fmt.Sprintf(format, "pb") +}