-
Notifications
You must be signed in to change notification settings - Fork 0
/
serviceTemplate.go
29 lines (26 loc) · 1.3 KB
/
serviceTemplate.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package protoTemplates
var ServiceTemplate = `// Code generated by furo-proto-gen. DO NOT EDIT.
syntax = "proto3";
package {{.Package}};
{{- range $key, $option := .Options}}
option {{$key}} = {{if ($option | eq "true")}}{{$option}};{{else}}"{{$option}}";{{end}}{{end}}
{{range $import := .Imports}}
import "{{$import}}";{{end}}
{{range $Service := .Services}}
{{$serviceName := camelcase (snakecase $Service.Name)}}
{{if $Service.Description}}// {{$Service.Description | replace "\n" "\n// "}}{{end}}
service {{$serviceName}} {
{{- $rpcmap := $Service.Services | rpcmap}}
{{range $rpckey, $method := $rpcmap}}
{{if $method.Description}}// {{$method.Description | replace "\n" "\n// " | noescape}}{{end}}
rpc {{if $method.RpcName}}{{$method.RpcName}}{{else}}{{$rpckey}}{{$serviceName}}{{end}} ({{$rpckey}}{{$serviceName}}Request) returns ({{$method.Data.Response}}){
{{if $method.Deeplink.Description}}//{{$method.Deeplink.Description | replace "\n" "\n// "}}{{else}}// developer was to lazy to describe the rpc, sorry{{end}}
option (google.api.http) = {
{{ lower $method.Deeplink.Method}}: "{{$method.Deeplink.Href}}"{{ if $method.Data.Request}}
{{ if or (eq $method.Deeplink.Method "POST") (eq $method.Deeplink.Method "PATCH") (eq $method.Deeplink.Method "PUT")}}body: "data"{{end}}{{end}}
};
}
{{end}}
}
{{end}}
`