Module: Scorpio::OpenAPI::Operation::V3Methods
- Includes:
- Scorpio::OpenAPI::Operation, Configurables
- Included in:
- V3_0::Operation
- Defined in:
- lib/scorpio/openapi/operation.rb
Defined Under Namespace
Modules: Configurables
Instance Attribute Summary
Attributes included from Configurables
#accept, #authorization, #base_url, #faraday_adapter, #faraday_builder, #logger, #request_headers, #user_agent
Attributes included from Configurables
#request_media_type, #server, #server_variables
Instance Method Summary collapse
- #request_schema(media_type: self.request_media_type) ⇒ JSI::Schema
- #request_schemas ⇒ JSI::SchemaSet
- #response_schema(status:, media_type:) ⇒ JSI::Schema?
- #response_schemas ⇒ JSI::SchemaSet
Methods included from Scorpio::OpenAPI::Operation
#build_request, #delete?, #each_link_page, #get?, #head?, #http_method, #human_id, #inferred_parameters, #inherited_parameters, #oa_response, #options?, #patch?, #path_template, #path_template_str, #post?, #put?, #run, #run_ur, #tagged?, #trace?, #uri_template, #v2?, #v3?
Methods included from Document::Descendent
Methods included from Configurables
Instance Method Details
#request_schema(media_type: self.request_media_type) ⇒ JSI::Schema
286 287 288 289 290 291 292 293 294 |
# File 'lib/scorpio/openapi/operation.rb', line 286 def request_schema(media_type: self.request_media_type) # TODO typechecking on requestBody & children request_content = requestBody && requestBody['content'] return nil unless request_content raise(ArgumentError, "please specify media_type for request_schema") unless media_type schema = request_content[media_type] && request_content[media_type]['schema'] return nil unless schema JSI::Schema.ensure_schema(schema) end |
#request_schemas ⇒ JSI::SchemaSet
297 298 299 300 301 302 303 304 305 306 307 |
# File 'lib/scorpio/openapi/operation.rb', line 297 def request_schemas JSI::SchemaSet.build do |schemas| if requestBody && requestBody['content'] requestBody['content'].each_value do |oa_media_type| if oa_media_type['schema'] schemas << oa_media_type['schema'] end end end end end |
#response_schema(status:, media_type:) ⇒ JSI::Schema?
310 311 312 313 314 315 316 317 318 |
# File 'lib/scorpio/openapi/operation.rb', line 310 def response_schema(status: , media_type: ) oa_response = self.oa_response(status: status) || return oa_media_types = oa_response['content'] || return # Scorpio::OpenAPI::V3_*::MediaTypes oa_media_type = oa_media_types[media_type] # Scorpio::OpenAPI::V3_*::MediaType oa_media_type ||= oa_media_types[-"#{::Ur::ContentType.new(media_type).type}/*"] oa_media_type ||= oa_media_types['*/*'] || return oa_schema = oa_media_type['schema'] || return # JSI::Schema, Scorpio::OpenAPI::V3_*::Schema JSI::Schema.ensure_schema(oa_schema) end |
#response_schemas ⇒ JSI::SchemaSet
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 |
# File 'lib/scorpio/openapi/operation.rb', line 321 def response_schemas JSI::SchemaSet.build do |schemas| if responses responses.each_value do |oa_response| if oa_response['content'] oa_response['content'].each_value do |oa_media_type| if oa_media_type['schema'] schemas << oa_media_type['schema'] end end end end end end end |