handle google.protobuf.timestamp
This commit is contained in:
parent
098b247649
commit
d0c5bb5a97
1
Makefile
1
Makefile
@ -8,6 +8,7 @@ install:
|
|||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test: install
|
test: install
|
||||||
|
cd examples/time && make
|
||||||
cd examples/enum && make
|
cd examples/enum && make
|
||||||
cd examples/import && make
|
cd examples/import && make
|
||||||
cd examples/dummy && make
|
cd examples/dummy && make
|
||||||
|
13
examples/time/Makefile
Normal file
13
examples/time/Makefile
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
mkdir -p output
|
||||||
|
protoc -I. --gotemplate_out=template_dir=templates,debug=true:output proto/*.proto
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: re
|
||||||
|
re: clean build
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf output
|
10
examples/time/output/time.go
Normal file
10
examples/time/output/time.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Code generated by protoc-gen-gotemplate
|
||||||
|
package foo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/golang/protobuf/ptypes/timestamp"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Repository interface {
|
||||||
|
GetFoo(timestamp *timestamp.Timestamp ) (*timestamp.Timestamp, error)
|
||||||
|
}
|
12
examples/time/proto/time.proto
Normal file
12
examples/time/proto/time.proto
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package foo;
|
||||||
|
|
||||||
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
message GetFooRequest { google.protobuf.Timestamp timestamp = 1;}
|
||||||
|
message GetFooResponse { string result = 1;}
|
||||||
|
|
||||||
|
service foosvc {
|
||||||
|
rpc GetFoo (GetFooRequest) returns (GetFooResponse){}
|
||||||
|
}
|
10
examples/time/templates/time.go.tmpl
Normal file
10
examples/time/templates/time.go.tmpl
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Code generated by protoc-gen-gotemplate
|
||||||
|
package {{.File.Package}}
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/golang/protobuf/ptypes/timestamp"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Repository interface {
|
||||||
|
{{range $m := .Service.Method}}{{with $t := $m.InputType | getMessageType $.File}} {{$m.Name}}({{range $f := $t.Field}}{{$f.Name|lowerCamelCase}} {{$f| goTypeWithPackage }} {{end}}) ({{with $out := $m.OutputType | getMessageType $.File}}{{range $f := $out.Field}}{{$f | goTypeWithPackage}}, {{end}}{{end}} error){{end}}{{end}}
|
||||||
|
}
|
@ -263,6 +263,9 @@ func jsSuffixReservedKeyword(s string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getPackageTypeName(s string) string {
|
func getPackageTypeName(s string) string {
|
||||||
|
if strings.Compare(s, ".google.protobuf.Timestamp") == 0 {
|
||||||
|
return "timestamp"
|
||||||
|
}
|
||||||
if strings.Contains(s, ".") {
|
if strings.Contains(s, ".") {
|
||||||
return strings.Split(s, ".")[1]
|
return strings.Split(s, ".")[1]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user