class OpenApi::Operation

Attributes

callbacks[RW]
deprecated[RW]
description[RW]
external_docs[RW]
operation_id[RW]
parameters[RW]
request_body[RW]
responses[RW]
security[RW]
servers[RW]
summary[RW]
tags[RW]

Public Class Methods

load(hash) click to toggle source
# File lib/open_api/operation.rb, line 39
def self.load(hash)
  return unless hash

  new(
    responses: Responses.load(hash["responses"]),
    tags: hash["tags"],
    summary: hash["summary"]&.to_s,
    description: hash["description"]&.to_s,
    external_docs: ExternalDocumentation.load(hash["externalDocs"]),
    operation_id: hash["operationId"]&.to_s,
    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
new(responses:, tags: nil, summary: nil, description: nil, external_docs: nil, operation_id: nil, parameters: nil, request_body: nil, callbacks: nil, deprecated: nil, security: nil, servers: nil) click to toggle source
# File lib/open_api/operation.rb, line 7
def initialize(responses:, tags: nil, summary: nil, description: nil, external_docs: nil, operation_id: nil, parameters: nil, request_body: nil, callbacks: nil, deprecated: nil, security: nil, servers: nil)
  self.responses = responses
  self.tags = tags
  self.summary = summary
  self.description = description
  self.external_docs = external_docs
  self.operation_id = operation_id
  self.parameters = parameters
  self.request_body = request_body
  self.callbacks = callbacks
  self.deprecated = deprecated
  self.security = security
  self.servers = servers
end

Public Instance Methods

serializable_hash() click to toggle source
# File lib/open_api/operation.rb, line 22
def serializable_hash
  {
    "description" => description&.to_s,
    "responses" => responses.serializable_hash,
    "tags" => tags&.map(&:to_s),
    "summary" => summary&.to_s,
    "externalDocs" => external_docs&.serializable_hash,
    "operationId" => operation_id&.to_s,
    "parameters" => parameters&.map(&:serializable_hash),
    "requestBody" => request_body&.serializable_hash,
    "callbacks" => callbacks&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_hash,
    "deprecated" => deprecated,
    "security" => security&.map(&:serializable_hash),
    "servers" => servers&.map(&:server),
  }.compact
end