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,
|
||||
"httpVerb": httpVerb,
|
||||
"httpPath": httpPath,
|
||||
"httpPathsAdditionalBindings": httpPathsAdditionalBindings,
|
||||
"httpBody": httpBody,
|
||||
"shortType": shortType,
|
||||
"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 {
|
||||
|
||||
ext, err := proto.GetExtension(m.Options, options.E_Http)
|
||||
|
Loading…
x
Reference in New Issue
Block a user