Class: OasCore::Builders::RequestBodyBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/oas_core/builders/request_body_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(specification) ⇒ RequestBodyBuilder

Returns a new instance of RequestBodyBuilder.



6
7
8
9
# File 'lib/oas_core/builders/request_body_builder.rb', line 6

def initialize(specification)
  @specification = specification
  @request_body = Spec::RequestBody.new(specification)
end

Instance Method Details

#buildObject



28
29
30
31
32
# File 'lib/oas_core/builders/request_body_builder.rb', line 28

def build
  return {} if @request_body.content == {}

  @request_body
end

#from_oas_route(oas_route) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/oas_core/builders/request_body_builder.rb', line 11

def from_oas_route(oas_route)
  tag_request_body = oas_route.tags(:request_body).first
  return self if tag_request_body.nil?

  from_tags(tag: tag_request_body, examples_tags: oas_route.tags(:request_body_example))

  self
end

#from_tags(tag:, examples_tags: []) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/oas_core/builders/request_body_builder.rb', line 20

def from_tags(tag:, examples_tags: [])
  @request_body.description = tag.text
  @request_body.content = ContentBuilder.new(@specification).with_schema(tag.content).with_examples_from_tags(examples_tags).with_content_type(tag.content_type).build
  @request_body.required = tag.required

  self
end

#referenceObject



34
35
36
37
38
# File 'lib/oas_core/builders/request_body_builder.rb', line 34

def reference
  return {} if @request_body.content == {}

  @specification.components.add_request_body(@request_body)
end