class OasParser::Endpoint
Attributes
method[RW]
path[RW]
raw[RW]
Public Class Methods
new(path, method, raw)
click to toggle source
# File lib/oas_parser/endpoint.rb, line 8 def initialize(path, method, raw) @path = path @method = method @raw = raw end
Public Instance Methods
basic_auth?()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 14 def definition path.definition end
jwt?()
click to toggle source
# 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()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 18 def operation_id operationId end
parameter_by_name(name)
click to toggle source
# 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()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 22 def parameters security_schema_parameters + local_parameters + path.parameters end
path_parameters()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 26 def path_parameters parameters.select { |parameter| parameter.in == 'path' } end
query_parameters()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 30 def query_parameters parameters.select { |parameter| parameter.in == 'query' } end
request_body()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 77 def security raw['security'] || [] end
security_schema_parameters()
click to toggle source
# 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()
click to toggle source
# 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
Private Instance Methods
local_parameters()
click to toggle source
# File lib/oas_parser/endpoint.rb, line 130 def local_parameters return [] unless raw['parameters'] raw['parameters'].map do |definition| OasParser::Parameter.new(self, definition) end end