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
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
- #header_parameters ⇒ 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
- #query_parameters ⇒ 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.
25 26 27 28 29 30 31 |
# File 'lib/openapi_first/definition/operation.rb', line 25 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)
Returns the value of attribute method.
23 24 25 |
# File 'lib/openapi_first/definition/operation.rb', line 23 def method @method end |
#openapi_version ⇒ Object (readonly)
Returns the value of attribute openapi_version.
23 24 25 |
# File 'lib/openapi_first/definition/operation.rb', line 23 def openapi_version @openapi_version end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
23 24 25 |
# File 'lib/openapi_first/definition/operation.rb', line 23 def path @path end |
Instance Method Details
#cookie_parameters ⇒ Object
84 85 86 |
# File 'lib/openapi_first/definition/operation.rb', line 84 def @cookie_parameters ||= build_parameters(all_parameters.filter { |p| p['in'] == 'cookie' }, CookieParameters) end |
#header_parameters ⇒ Object
80 81 82 |
# File 'lib/openapi_first/definition/operation.rb', line 80 def header_parameters @header_parameters ||= build_parameters(find_header_parameters, HeaderParameters) end |
#name ⇒ Object
65 66 67 |
# File 'lib/openapi_first/definition/operation.rb', line 65 def name @name ||= "#{method.upcase} #{path} (#{operation_id})" end |
#operation_id ⇒ Object
33 34 35 |
# File 'lib/openapi_first/definition/operation.rb', line 33 def operation_id operation_object['operationId'] end |
#path_parameters ⇒ Object
73 74 75 |
# File 'lib/openapi_first/definition/operation.rb', line 73 def path_parameters @path_parameters ||= build_parameters(all_parameters.filter { |p| p['in'] == 'path' }, PathParameters) end |
#query_parameters ⇒ Object
69 70 71 |
# File 'lib/openapi_first/definition/operation.rb', line 69 def query_parameters @query_parameters ||= build_parameters(all_parameters.filter { |p| p['in'] == 'query' }, QueryParameters) end |
#read? ⇒ Boolean
37 38 39 |
# File 'lib/openapi_first/definition/operation.rb', line 37 def read? !write? end |
#request_body ⇒ Object
45 46 47 |
# File 'lib/openapi_first/definition/operation.rb', line 45 def request_body @request_body ||= RequestBody.new(operation_object['requestBody'], self) if operation_object['requestBody'] end |
#response_status_defined?(status) ⇒ Boolean
49 50 51 |
# File 'lib/openapi_first/definition/operation.rb', line 49 def response_status_defined?(status) responses.status_defined?(status) end |
#schema_for(content_type) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/openapi_first/definition/operation.rb', line 55 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
41 42 43 |
# File 'lib/openapi_first/definition/operation.rb', line 41 def write? WRITE_METHODS.include?(method) end |