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.
19 20 21 22 23 24 25 |
# File 'lib/openapi_first/definition/operation.rb', line 19 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.
27 28 29 |
# File 'lib/openapi_first/definition/operation.rb', line 27 def method @method end |
#openapi_version ⇒ Object (readonly)
Returns the value of attribute openapi_version.
27 28 29 |
# File 'lib/openapi_first/definition/operation.rb', line 27 def openapi_version @openapi_version end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
27 28 29 |
# File 'lib/openapi_first/definition/operation.rb', line 27 def path @path end |
Instance Method Details
#cookie_parameters ⇒ Object
78 79 80 |
# File 'lib/openapi_first/definition/operation.rb', line 78 def all_parameters['cookie'] end |
#cookie_parameters_schema ⇒ Object
94 95 96 |
# File 'lib/openapi_first/definition/operation.rb', line 94 def @cookie_parameters_schema ||= build_schema() end |
#header_parameters ⇒ Object
74 75 76 |
# File 'lib/openapi_first/definition/operation.rb', line 74 def header_parameters all_parameters['header'] end |
#header_parameters_schema ⇒ Object
90 91 92 |
# File 'lib/openapi_first/definition/operation.rb', line 90 def header_parameters_schema @header_parameters_schema ||= build_schema(header_parameters) end |
#name ⇒ Object
62 63 64 |
# File 'lib/openapi_first/definition/operation.rb', line 62 def name @name ||= "#{method.upcase} #{path} (#{operation_id})" end |
#operation_id ⇒ Object
30 31 32 |
# File 'lib/openapi_first/definition/operation.rb', line 30 def operation_id operation_object['operationId'] end |
#path_parameters ⇒ Object
66 67 68 |
# File 'lib/openapi_first/definition/operation.rb', line 66 def path_parameters all_parameters['path'] end |
#path_parameters_schema ⇒ Object
82 83 84 |
# File 'lib/openapi_first/definition/operation.rb', line 82 def path_parameters_schema @path_parameters_schema ||= build_schema(path_parameters) end |
#query_parameters ⇒ Object
70 71 72 |
# File 'lib/openapi_first/definition/operation.rb', line 70 def query_parameters all_parameters['query'] end |
#query_parameters_schema ⇒ Object
86 87 88 |
# File 'lib/openapi_first/definition/operation.rb', line 86 def query_parameters_schema @query_parameters_schema ||= build_schema(query_parameters) end |
#read? ⇒ Boolean
34 35 36 |
# File 'lib/openapi_first/definition/operation.rb', line 34 def read? !write? end |
#request_body ⇒ Object
42 43 44 |
# File 'lib/openapi_first/definition/operation.rb', line 42 def request_body @request_body ||= RequestBody.new(operation_object['requestBody'], self) if operation_object['requestBody'] end |
#response_status_defined?(status) ⇒ Boolean
46 47 48 |
# File 'lib/openapi_first/definition/operation.rb', line 46 def response_status_defined?(status) responses.status_defined?(status) end |
#schema_for(content_type) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/openapi_first/definition/operation.rb', line 52 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
38 39 40 |
# File 'lib/openapi_first/definition/operation.rb', line 38 def write? WRITE_METHODS.include?(method) end |