Class: DryOpenApi::Operation
- Inherits:
-
Object
- Object
- DryOpenApi::Operation
- Extended by:
- Dry::Initializer
- Includes:
- EquatableAsContent
- Defined in:
- lib/dry_open_api/operation.rb
Overview
no corresponding thing in the spec
Class Method Summary collapse
Instance Method Summary collapse
-
#serializable_hash ⇒ Object
rubocop:disable Metrics/MethodLength.
Methods included from EquatableAsContent
Class Method Details
.load(hash) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/dry_open_api/operation.rb', line 40 def self.load(hash) return unless hash new( responses: Responses.load(hash['responses']), tags: hash['tags'], summary: hash['summary'], description: hash['description'], external_docs: ExternalDocumentation.load(hash['externalDocs']), operation_id: hash['operationId'], parameters: hash['parameters']&.map { |h| Reference.load(h) || Parameter.load(h) }, request_body: Reference.load(hash['requestBody']) || RequestBody.load(hash['requestBody']), callbacks: hash['callbacks']&.map { |k, v| [k, Reference.load(v) || Callback.load(v)] }&.to_h, deprecated: hash['deprecated'], security: hash['security']&.map { |h| SecurityRequirement.load(h) }, servers: hash['servers']&.map { |h| Server.load(h) } ) end |
Instance Method Details
#serializable_hash ⇒ Object
rubocop:disable Metrics/MethodLength
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dry_open_api/operation.rb', line 23 def serializable_hash { 'description' => description, 'responses' => responses.serializable_hash, 'tags' => &.map(&:to_s), 'summary' => summary, 'externalDocs' => external_docs&.serializable_hash, 'operationId' => operation_id, 'parameters' => parameters&.map(&:serializable_hash), 'requestBody' => request_body&.serializable_hash, 'callbacks' => callbacks&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h, 'deprecated' => deprecated, 'security' => security&.map(&:serializable_hash), 'servers' => servers&.map(&:server) }.compact end |