| {{/* | |
| Custom "operation" template for Moby; it disables all code generation | |
| and only produces the API structs. | |
| The orignal template can be found at: | |
| https://github.com/go-swagger/go-swagger/blob/v0.33.1/generator/templates/server/operation.gotmpl | |
| */}} | |
| // Code generated by go-swagger; DO NOT EDIT. | |
| {{ if .Copyright -}}// {{ comment .Copyright -}}{{ end }} | |
| package {{ .Package }} | |
| // ---------------------------------------------------------------------------- | |
| // Code generated by `swagger generate operation`. | |
| // | |
| // See hack/generate-swagger-api.sh | |
| // ---------------------------------------------------------------------------- | |
| {{- if false }}{{/* TODO(moby): Disabled for moby/api */}} | |
| // This file was generated by the swagger tool. | |
| // Editing this file might prove futile when you re-run the generate command | |
| import ( | |
| "net/http" | |
| {{- if .ExtraSchemas }} | |
| stderrors "errors" | |
| {{- end }} | |
| "github.com/go-openapi/errors" | |
| "github.com/go-openapi/runtime/middleware" | |
| "github.com/go-openapi/runtime/security" | |
| "github.com/go-openapi/strfmt" | |
| "github.com/go-openapi/swag" | |
| "github.com/go-openapi/validate" | |
| {{ imports .DefaultImports }} | |
| {{ imports .Imports }} | |
| ) | |
| // {{ pascalize .Name }}HandlerFunc turns a function with the right signature into a {{ humanize .Name }} handler | |
| type {{ pascalize .Name }}HandlerFunc func({{ pascalize .Name }}Params{{ if .Authorized }}, {{ if .PrincipalIsNullable }}*{{ end }}{{ .Principal }}{{ end }}) | |
| {{- if $.ReturnErrors }} | |
| {{- if $.StrictResponders }} ({{ pascalize .Name }}Responder, error) {{else}} (middleware.Responder, error) {{end}} | |
| {{ else }} | |
| {{- if $.StrictResponders }} {{ pascalize .Name }}Responder {{else}} middleware.Responder {{end}} | |
| {{ end }} | |
| // Handle executing the request and returning a response | |
| func (fn {{ pascalize .Name }}HandlerFunc) Handle(params {{ pascalize .Name }}Params{{ if .Authorized }}, principal {{ if .PrincipalIsNullable }}*{{ end }}{{ .Principal }}{{ end }}) | |
| {{- if $.ReturnErrors }} | |
| {{- if $.StrictResponders }} ({{ pascalize .Name }}Responder, error) {{else}} (middleware.Responder, error) {{end}} { | |
| {{ else }} | |
| {{- if $.StrictResponders }} {{ pascalize .Name }}Responder {{else}} middleware.Responder {{end}} { | |
| {{ end -}} | |
| return fn(params{{ if .Authorized }}, principal{{ end }}) | |
| } | |
| // {{ pascalize .Name }}Handler interface for that can handle valid {{ humanize .Name }} params | |
| type {{ pascalize .Name }}Handler interface { | |
| Handle({{ pascalize .Name }}Params{{ if .Authorized }}, {{ if .PrincipalIsNullable }}*{{ end }}{{ .Principal }}{{ end }}) | |
| {{- if $.ReturnErrors }} | |
| {{- if $.StrictResponders }} ({{ pascalize .Name }}Responder, error) {{else}} (middleware.Responder, error) {{end}} | |
| {{ else }} | |
| {{- if $.StrictResponders }} {{ pascalize .Name }}Responder {{else}} middleware.Responder {{end}} | |
| {{ end }} | |
| } | |
| // New{{ pascalize .Name }} creates a new http.Handler for the {{ humanize .Name }} operation | |
| func New{{ pascalize .Name }}(ctx *middleware.Context, handler {{ pascalize .Name }}Handler) *{{ pascalize .Name }} { | |
| return &{{ pascalize .Name }}{Context: ctx, Handler: handler} | |
| } | |
| /* {{ pascalize .Name }} swagger:route {{ .Method }} {{ .Path }}{{ range .Tags }} {{ . }}{{ end }} {{ camelize .Name }} | |
| {{ if .Summary }}{{ .Summary }}{{ if .Description }} | |
| {{ blockcomment .Description }}{{ end }}{{ else if .Description}}{{ blockcomment .Description }}{{ else }}{{ pascalize .Name }} {{ humanize .Name }} API{{ end }} | |
| */ | |
| type {{ pascalize .Name }} struct { | |
| Context *middleware.Context | |
| Handler {{ pascalize .Name }}Handler | |
| } | |
| func ({{ .ReceiverName }} *{{ pascalize .Name }}) ServeHTTP(rw http.ResponseWriter, r *http.Request) { | |
| route, rCtx, _ := {{ .ReceiverName }}.Context.RouteInfo(r) | |
| if rCtx != nil { | |
| *r = *rCtx | |
| } | |
| var Params = New{{ pascalize .Name }}Params() | |
| {{- if .Authorized }} | |
| uprinc, aCtx, err := {{ .ReceiverName }}.Context.Authorize(r, route) | |
| if err != nil { | |
| {{ .ReceiverName }}.Context.Respond(rw, r, route.Produces, route, err) | |
| return | |
| } | |
| if aCtx != nil { | |
| *r = *aCtx | |
| } | |
| var principal {{ if .PrincipalIsNullable }}*{{ end }}{{ .Principal }} | |
| if uprinc != nil { | |
| principal = {{ if or (eq .Principal "inferface{}") (eq .Principal "any") }}uprinc{{ else }}uprinc.({{ if .PrincipalIsNullable }}*{{ end }}{{ .Principal }}) // this is really a {{ .Principal }}, I promise{{ end }} | |
| } | |
| {{ end }} | |
| if err := {{ .ReceiverName }}.Context.BindValidRequest(r, route, &Params); err != nil { // bind params | |
| {{ .ReceiverName }}.Context.Respond(rw, r, route.Produces, route, err) | |
| return | |
| } | |
| {{ if $.ReturnErrors }} | |
| res, err := {{ .ReceiverName }}.Handler.Handle(Params{{ if .Authorized }}, principal{{ end }}) // actually handle the request | |
| if err != nil { | |
| {{ .ReceiverName }}.Context.Respond(rw, r, route.Produces, route, err) | |
| return | |
| } | |
| {{ else }} | |
| res := {{ .ReceiverName }}.Handler.Handle(Params{{ if .Authorized }}, principal{{ end }}) // actually handle the request | |
| {{ end }} | |
| {{ .ReceiverName }}.Context.Respond(rw, r, route.Produces, route, res) | |
| } | |
| {{- end }}{{/* TODO(moby): Disabled for moby/api */}} | |
| {{ range .ExtraSchemas }} | |
| // {{ .Name }} {{ comment .Description }}{{/* TODO(moby): workaround for "Name" included twice in godoc */}} | |
| // | |
| // swagger:model {{ .Name }} | |
| {{- template "schema" . }} | |
| {{- end }} |