Class: OasCore::Builders::ResponsesBuilder
- Inherits:
-
Object
- Object
- OasCore::Builders::ResponsesBuilder
- Defined in:
- lib/oas_core/builders/responses_builder.rb
Instance Method Summary collapse
- #add_default_responses(oas_route, security) ⇒ Object
- #build ⇒ Object
- #from_oas_route(oas_route) ⇒ Object
-
#initialize(specification, content_builder: ContentBuilder, response_builder: ResponseBuilder, json_schema_generator: JsonSchemaGenerator, utils: Utils) ⇒ ResponsesBuilder
constructor
A new instance of ResponsesBuilder.
Constructor Details
#initialize(specification, content_builder: ContentBuilder, response_builder: ResponseBuilder, json_schema_generator: JsonSchemaGenerator, utils: Utils) ⇒ ResponsesBuilder
Returns a new instance of ResponsesBuilder.
6 7 8 9 10 11 12 13 14 |
# File 'lib/oas_core/builders/responses_builder.rb', line 6 def initialize(specification, content_builder: ContentBuilder, response_builder: ResponseBuilder, json_schema_generator: JsonSchemaGenerator, utils: Utils) @specification = specification @content_builder = content_builder @response_builder = response_builder @json_schema_generator = json_schema_generator @utils = utils @responses = Spec::Responses.new(specification) end |
Instance Method Details
#add_default_responses(oas_route, security) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/oas_core/builders/responses_builder.rb', line 33 def add_default_responses(oas_route, security) return self unless OasCore.config.set_default_responses common_errors = determine_common_errors(oas_route, security) add_responses_for_errors(common_errors) self end |
#build ⇒ Object
42 43 44 |
# File 'lib/oas_core/builders/responses_builder.rb', line 42 def build @responses end |
#from_oas_route(oas_route) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/oas_core/builders/responses_builder.rb', line 16 def from_oas_route(oas_route) oas_route.(:response).each do |tag| content = @content_builder.new(@specification).with_schema(tag.content).(oas_route.(:response_example).filter do |re| re.code == tag.code end).build response = @response_builder.new(@specification).with_code(tag.code.to_i).with_description(tag.text).with_content(content).build @responses.add_response(response) end oas_route.(:response_ref)&.each do |ref_tag| @responses.add_reference_response(ref_tag.code, ref_tag.reference) end self end |