Class: OpenapiFirst::Definition::Operation
- Inherits:
-
Object
- Object
- OpenapiFirst::Definition::Operation
- Extended by:
- Forwardable
- Defined in:
- lib/openapi_first/definition/operation.rb
Instance Attribute Summary collapse
-
#method ⇒ Object
(also: #request_method)
readonly
Returns the value of attribute method.
-
#openapi_version ⇒ Object
readonly
Returns the value of attribute openapi_version.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #cookie_parameters ⇒ Object
- #cookie_parameters_schema ⇒ Object
- #header_parameters ⇒ Object
- #header_parameters_schema ⇒ Object
-
#initialize(path, request_method, path_item_object, openapi_version:) ⇒ Operation
constructor
A new instance of Operation.
- #name ⇒ Object
- #operation_id ⇒ Object
- #path_parameters ⇒ Object
- #path_parameters_schema ⇒ Object
- #query_parameters ⇒ Object
- #query_parameters_schema ⇒ Object
- #read? ⇒ Boolean
- #request_body ⇒ Object
- #response_status_defined?(status) ⇒ Boolean
- #schema_for(content_type) ⇒ Object
- #write? ⇒ Boolean
Constructor Details
#initialize(path, request_method, path_item_object, openapi_version:) ⇒ Operation
Returns a new instance of Operation.
20 21 22 23 24 25 26 |
# File 'lib/openapi_first/definition/operation.rb', line 20 def initialize(path, request_method, path_item_object, openapi_version:) @path = path @method = request_method @path_item_object = path_item_object @openapi_version = openapi_version @operation_object = @path_item_object[request_method] end |
Instance Attribute Details
#method ⇒ Object (readonly) Also known as: request_method
Returns the value of attribute method.
28 29 30 |
# File 'lib/openapi_first/definition/operation.rb', line 28 def method @method end |
#openapi_version ⇒ Object (readonly)
Returns the value of attribute openapi_version.
28 29 30 |
# File 'lib/openapi_first/definition/operation.rb', line 28 def openapi_version @openapi_version end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
28 29 30 |
# File 'lib/openapi_first/definition/operation.rb', line 28 def path @path end |
Instance Method Details
#cookie_parameters ⇒ Object
79 80 81 |
# File 'lib/openapi_first/definition/operation.rb', line 79 def all_parameters['cookie'] end |
#cookie_parameters_schema ⇒ Object
95 96 97 |
# File 'lib/openapi_first/definition/operation.rb', line 95 def @cookie_parameters_schema ||= build_schema() end |
#header_parameters ⇒ Object
75 76 77 |
# File 'lib/openapi_first/definition/operation.rb', line 75 def header_parameters all_parameters['header'] end |
#header_parameters_schema ⇒ Object
91 92 93 |
# File 'lib/openapi_first/definition/operation.rb', line 91 def header_parameters_schema @header_parameters_schema ||= build_schema(header_parameters) end |
#name ⇒ Object
63 64 65 |
# File 'lib/openapi_first/definition/operation.rb', line 63 def name @name ||= "#{method.upcase} #{path} (#{operation_id})" end |
#operation_id ⇒ Object
31 32 33 |
# File 'lib/openapi_first/definition/operation.rb', line 31 def operation_id operation_object['operationId'] end |
#path_parameters ⇒ Object
67 68 69 |
# File 'lib/openapi_first/definition/operation.rb', line 67 def path_parameters all_parameters['path'] end |
#path_parameters_schema ⇒ Object
83 84 85 |
# File 'lib/openapi_first/definition/operation.rb', line 83 def path_parameters_schema @path_parameters_schema ||= build_schema(path_parameters) end |
#query_parameters ⇒ Object
71 72 73 |
# File 'lib/openapi_first/definition/operation.rb', line 71 def query_parameters all_parameters['query'] end |
#query_parameters_schema ⇒ Object
87 88 89 |
# File 'lib/openapi_first/definition/operation.rb', line 87 def query_parameters_schema @query_parameters_schema ||= build_schema(query_parameters) end |
#read? ⇒ Boolean
35 36 37 |
# File 'lib/openapi_first/definition/operation.rb', line 35 def read? !write? end |
#request_body ⇒ Object
43 44 45 |
# File 'lib/openapi_first/definition/operation.rb', line 43 def request_body @request_body ||= RequestBody.new(operation_object['requestBody'], self) if operation_object['requestBody'] end |
#response_status_defined?(status) ⇒ Boolean
47 48 49 |
# File 'lib/openapi_first/definition/operation.rb', line 47 def response_status_defined?(status) responses.status_defined?(status) end |
#schema_for(content_type) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/openapi_first/definition/operation.rb', line 53 def schema_for(content_type) content = @request_body_object['content'] return unless content&.any? content_schemas&.fetch(content_type) do type = content_type.split(';')[0] content_schemas[type] || content_schemas["#{type.split('/')[0]}/*"] || content_schemas['*/*'] end end |
#write? ⇒ Boolean
39 40 41 |
# File 'lib/openapi_first/definition/operation.rb', line 39 def write? WRITE_METHODS.include?(method) end |