Class: OasCore::Builders::OperationBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(specification) ⇒ OperationBuilder

Returns a new instance of OperationBuilder.



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

def initialize(specification)
  @specification = specification
  @operation = Spec::Operation.new(specification)
end

Instance Method Details

#buildObject



26
27
28
# File 'lib/oas_core/builders/operation_builder.rb', line 26

def build
  @operation
end

#from_oas_route(oas_route) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/oas_core/builders/operation_builder.rb', line 11

def from_oas_route(oas_route)
  @operation.summary = extract_summary(oas_route:)
  @operation.operation_id = extract_operation_id(oas_route:)
  @operation.description = oas_route.docstring
  @operation.tags = extract_tags(oas_route:)
  @operation.security = extract_security(oas_route:)
  @operation.parameters = ParametersBuilder.new(@specification).from_oas_route(oas_route).build
  @operation.request_body = extract_request_body(oas_route)
  @operation.responses = ResponsesBuilder.new(@specification)
                                         .from_oas_route(oas_route)
                                         .add_default_responses(oas_route, !@operation.security.empty?).build

  self
end