Files
gswagger/operation.go
dependabot[bot] 617c44900c chore(deps): bump github.com/getkin/kin-openapi from 0.120.0 to 0.123.0 (#148)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Maggi <federico.maggi@mia-platform.eu>
2024-02-28 11:30:55 +01:00

49 lines
1.3 KiB
Go

package swagger
import (
"github.com/getkin/kin-openapi/openapi3"
)
// Operation type
type Operation struct {
*openapi3.Operation
}
// NewOperation returns an OpenApi operation.
func NewOperation() Operation {
return Operation{
openapi3.NewOperation(),
}
}
// AddRequestBody set request body into operation.
func (o *Operation) AddRequestBody(requestBody *openapi3.RequestBody) {
o.RequestBody = &openapi3.RequestBodyRef{
Value: requestBody,
}
}
// AddResponse add response to operation. It check if the description is present
// (otherwise default to empty string). This method does not add the default response,
// but it is always possible to add it manually.
func (o *Operation) AddResponse(status int, response *openapi3.Response) {
if o.Responses == nil {
o.Responses = &openapi3.Responses{}
}
if response.Description == nil {
// a description is required by kin openapi, so we set an empty description
// if it is not given.
response.WithDescription("")
}
o.Operation.AddResponse(status, response)
}
func (o *Operation) addSecurityRequirements(securityRequirements SecurityRequirements) {
if securityRequirements != nil && o.Security == nil {
o.Security = openapi3.NewSecurityRequirements()
}
for _, securityRequirement := range securityRequirements {
o.Security.With(openapi3.SecurityRequirement(securityRequirement))
}
}