add helper like httpPath for get path in additional bindings options
This commit is contained in:
parent
15ac366c8d
commit
0c29a9922f
@ -117,6 +117,7 @@ var ProtoHelpersFuncMap = template.FuncMap{
|
|||||||
"namespacedFlowType": namespacedFlowType,
|
"namespacedFlowType": namespacedFlowType,
|
||||||
"httpVerb": httpVerb,
|
"httpVerb": httpVerb,
|
||||||
"httpPath": httpPath,
|
"httpPath": httpPath,
|
||||||
|
"httpPathsAdditionalBindings": httpPathsAdditionalBindings,
|
||||||
"httpBody": httpBody,
|
"httpBody": httpBody,
|
||||||
"shortType": shortType,
|
"shortType": shortType,
|
||||||
"urlHasVarsFromMessage": urlHasVarsFromMessage,
|
"urlHasVarsFromMessage": urlHasVarsFromMessage,
|
||||||
@ -726,6 +727,40 @@ func httpPath(m *descriptor.MethodDescriptorProto) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func httpPathsAdditionalBindings(m *descriptor.MethodDescriptorProto) []string {
|
||||||
|
ext, err := proto.GetExtension(m.Options, options.E_Http)
|
||||||
|
if err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
opts, ok := ext.(*options.HttpRule)
|
||||||
|
if !ok {
|
||||||
|
panic(fmt.Sprintf("extension is %T; want an HttpRule", ext))
|
||||||
|
}
|
||||||
|
|
||||||
|
var httpPaths []string
|
||||||
|
var optsAdditionalBindings = opts.GetAdditionalBindings()
|
||||||
|
for _, optAdditionalBindings := range optsAdditionalBindings {
|
||||||
|
switch t := optAdditionalBindings.Pattern.(type) {
|
||||||
|
case *options.HttpRule_Get:
|
||||||
|
httpPaths = append(httpPaths, t.Get)
|
||||||
|
case *options.HttpRule_Post:
|
||||||
|
httpPaths = append(httpPaths, t.Post)
|
||||||
|
case *options.HttpRule_Put:
|
||||||
|
httpPaths = append(httpPaths, t.Put)
|
||||||
|
case *options.HttpRule_Delete:
|
||||||
|
httpPaths = append(httpPaths, t.Delete)
|
||||||
|
case *options.HttpRule_Patch:
|
||||||
|
httpPaths = append(httpPaths, t.Patch)
|
||||||
|
case *options.HttpRule_Custom:
|
||||||
|
httpPaths = append(httpPaths, t.Custom.Path)
|
||||||
|
default:
|
||||||
|
// nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return httpPaths
|
||||||
|
}
|
||||||
|
|
||||||
func httpVerb(m *descriptor.MethodDescriptorProto) string {
|
func httpVerb(m *descriptor.MethodDescriptorProto) string {
|
||||||
|
|
||||||
ext, err := proto.GetExtension(m.Options, options.E_Http)
|
ext, err := proto.GetExtension(m.Options, options.E_Http)
|
||||||
|
Loading…
Reference in New Issue
Block a user