mirror of
https://github.com/cert-manager/webhook-example.git
synced 2025-07-04 07:35:49 +02:00
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
package restfuladapter
|
|
|
|
import (
|
|
"github.com/emicklei/go-restful/v3"
|
|
"k8s.io/kube-openapi/pkg/common"
|
|
)
|
|
|
|
var _ common.Route = &RouteAdapter{}
|
|
|
|
// RouteAdapter adapts a restful.Route to common.Route.
|
|
type RouteAdapter struct {
|
|
Route *restful.Route
|
|
}
|
|
|
|
func (r *RouteAdapter) StatusCodeResponses() []common.StatusCodeResponse {
|
|
// go-restful uses the ResponseErrors field to contain both error and regular responses.
|
|
var responses []common.StatusCodeResponse
|
|
for _, res := range r.Route.ResponseErrors {
|
|
localRes := res
|
|
responses = append(responses, &ResponseErrorAdapter{&localRes})
|
|
}
|
|
|
|
return responses
|
|
}
|
|
|
|
func (r *RouteAdapter) OperationName() string {
|
|
return r.Route.Operation
|
|
}
|
|
|
|
func (r *RouteAdapter) Method() string {
|
|
return r.Route.Method
|
|
}
|
|
|
|
func (r *RouteAdapter) Path() string {
|
|
return r.Route.Path
|
|
}
|
|
|
|
func (r *RouteAdapter) Parameters() []common.Parameter {
|
|
var params []common.Parameter
|
|
for _, rParam := range r.Route.ParameterDocs {
|
|
params = append(params, &ParamAdapter{rParam})
|
|
}
|
|
return params
|
|
}
|
|
|
|
func (r *RouteAdapter) Description() string {
|
|
return r.Route.Doc
|
|
}
|
|
|
|
func (r *RouteAdapter) Consumes() []string {
|
|
return r.Route.Consumes
|
|
}
|
|
|
|
func (r *RouteAdapter) Produces() []string {
|
|
return r.Route.Produces
|
|
}
|
|
|
|
func (r *RouteAdapter) Metadata() map[string]interface{} {
|
|
return r.Route.Metadata
|
|
}
|
|
|
|
func (r *RouteAdapter) RequestPayloadSample() interface{} {
|
|
return r.Route.ReadSample
|
|
}
|
|
|
|
func (r *RouteAdapter) ResponsePayloadSample() interface{} {
|
|
return r.Route.WriteSample
|
|
}
|