Class: OasParser::Endpoint
- Inherits:
-
Object
- Object
- OasParser::Endpoint
show all
- Includes:
- RawAccessor
- Defined in:
- lib/oas_parser/endpoint.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
included, #method_missing, #respond_to_missing?
Constructor Details
#initialize(path, method, raw) ⇒ Endpoint
Returns a new instance of Endpoint.
8
9
10
11
12
|
# File 'lib/oas_parser/endpoint.rb', line 8
def initialize(path, method, raw)
@path = path
@method = method
@raw = raw
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class OasParser::RawAccessor
Instance Attribute Details
#method ⇒ Object
Returns the value of attribute method.
6
7
8
|
# File 'lib/oas_parser/endpoint.rb', line 6
def method
@method
end
|
#path ⇒ Object
Returns the value of attribute path.
6
7
8
|
# File 'lib/oas_parser/endpoint.rb', line 6
def path
@path
end
|
#raw ⇒ Object
Returns the value of attribute raw.
6
7
8
|
# File 'lib/oas_parser/endpoint.rb', line 6
def raw
@raw
end
|
Instance Method Details
#basic_auth? ⇒ Boolean
104
105
106
107
108
109
110
111
112
|
# File 'lib/oas_parser/endpoint.rb', line 104
def basic_auth?
return false unless security
security_schemes.each do |security_schema|
return true if security_schema['type'] == 'http' && security_schema['scheme'] == 'basic'
end
false
end
|
#callback_by_name(name) ⇒ Object
88
89
90
91
92
|
# File 'lib/oas_parser/endpoint.rb', line 88
def callback_by_name(name)
definition = raw['callbacks'][name]
raise OasParser::CallbackNotFound.new("Callback not found: '#{name}'") unless definition
OasParser::Callback.new(self, name, definition)
end
|
#callbacks ⇒ Object
81
82
83
84
85
86
|
# File 'lib/oas_parser/endpoint.rb', line 81
def callbacks
return [] unless raw['callbacks']
raw['callbacks'].map do |name, definition|
OasParser::Callback.new(self, name, definition)
end
end
|
#definition ⇒ Object
14
15
16
|
# File 'lib/oas_parser/endpoint.rb', line 14
def definition
path.definition
end
|
#jwt? ⇒ Boolean
94
95
96
97
98
99
100
101
102
|
# File 'lib/oas_parser/endpoint.rb', line 94
def jwt?
return false unless security
security_schemes.each do |security_schema|
return true if security_schema['bearerFormat'] == 'JWT'
end
false
end
|
#operation_id ⇒ Object
18
19
20
|
# File 'lib/oas_parser/endpoint.rb', line 18
def operation_id
operationId
end
|
#parameter_by_name(name) ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/oas_parser/endpoint.rb', line 51
def parameter_by_name(name)
parameters.each do |parameter|
return parameter if parameter.name == name
end
raise OasParser::ParameterNotFound.new("Parameter not found: '#{name}'")
end
|
#parameters ⇒ Object
22
23
24
|
# File 'lib/oas_parser/endpoint.rb', line 22
def parameters
security_schema_parameters + local_parameters + path.parameters
end
|
#path_parameters ⇒ Object
26
27
28
|
# File 'lib/oas_parser/endpoint.rb', line 26
def path_parameters
parameters.select { |parameter| parameter.in == 'path' }
end
|
#query_parameters ⇒ Object
30
31
32
|
# File 'lib/oas_parser/endpoint.rb', line 30
def query_parameters
parameters.select { |parameter| parameter.in == 'query' }
end
|
#request_body ⇒ Object
59
60
61
62
|
# File 'lib/oas_parser/endpoint.rb', line 59
def request_body
return false unless raw['requestBody']
OasParser::RequestBody.new(self, raw['requestBody'])
end
|
#response_by_code(code, use_default: false) ⇒ Object
70
71
72
73
74
75
|
# File 'lib/oas_parser/endpoint.rb', line 70
def response_by_code(code, use_default: false)
definition = raw['responses'][code]
definition ||= raw['responses']['default'] if use_default
raise OasParser::ResponseCodeNotFound.new("Response code not found: '#{code}'") unless definition
OasParser::Response.new(self, code, definition)
end
|
#responses ⇒ Object
64
65
66
67
68
|
# File 'lib/oas_parser/endpoint.rb', line 64
def responses
raw['responses'].map do |code, definition|
OasParser::Response.new(self, code, definition)
end
end
|
#security ⇒ Object
77
78
79
|
# File 'lib/oas_parser/endpoint.rb', line 77
def security
raw['security'] || []
end
|
#security_schema_parameters ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/oas_parser/endpoint.rb', line 34
def security_schema_parameters
raw_security_schema_parameters = security_schemes.select do |security_schema|
security_schema['in'].present? && security_schema['in'].present?
end
security_schema_parameter_defaults = {
'type' => 'string',
'example' => 'abc123',
'default' => false,
}
raw_security_schema_parameters.map do |definition|
definition = security_schema_parameter_defaults.merge(definition)
OasParser::Parameter.new(self, definition)
end
end
|
#security_schemes ⇒ Object
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# File 'lib/oas_parser/endpoint.rb', line 114
def security_schemes
security_schemes = security.flat_map(&:keys)
if definition
security_schemes = security_schemes + definition.security.flat_map(&:keys)
end
security_schemes = security_schemes.uniq
security_schemes.map do |security_scheme_name|
definition.components['securitySchemes'][security_scheme_name]
end
end
|