Class: OpenApi::Operation

Inherits:
Object
  • Object
show all
Includes:
EquatableAsContent
Defined in:
lib/open_api/operation.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EquatableAsContent

#==

Constructor Details

#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) ⇒ Operation

Returns a new instance of Operation.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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

Instance Attribute Details

#callbacksObject

Returns the value of attribute callbacks.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def callbacks
  @callbacks
end

#deprecatedObject

Returns the value of attribute deprecated.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def deprecated
  @deprecated
end

#descriptionObject

Returns the value of attribute description.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def description
  @description
end

#external_docsObject

Returns the value of attribute external_docs.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def external_docs
  @external_docs
end

#operation_idObject

Returns the value of attribute operation_id.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def operation_id
  @operation_id
end

#parametersObject

Returns the value of attribute parameters.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def parameters
  @parameters
end

#request_bodyObject

Returns the value of attribute request_body.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def request_body
  @request_body
end

#responsesObject

Returns the value of attribute responses.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def responses
  @responses
end

#securityObject

Returns the value of attribute security.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def security
  @security
end

#serversObject

Returns the value of attribute servers.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def servers
  @servers
end

#summaryObject

Returns the value of attribute summary.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def summary
  @summary
end

#tagsObject

Returns the value of attribute tags.



5
6
7
# File 'lib/open_api/operation.rb', line 5

def tags
  @tags
end

Class Method Details

.load(hash) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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

Instance Method Details

#serializable_hashObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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