class OpenapiValidator::Validator
Attributes
additional_schemas[R]
api_base_path[R]
api_doc[R]
unvalidated_requests[R]
Public Class Methods
new(doc, additional_schemas: [], api_base_path: "")
click to toggle source
@param [Hash] doc parsed openapi documentation @param [Array<String>] additional_schemas
paths to custom schemas
# File lib/openapi_validator/validator.rb, line 32 def initialize(doc, additional_schemas: [], api_base_path: "") @api_doc = doc @api_base_path = api_base_path @additional_schemas = additional_schemas @unvalidated_requests = build_unvalidated_requests end
Public Instance Methods
remove_validated_path(request)
click to toggle source
@param [Array] request
# File lib/openapi_validator/validator.rb, line 22 def remove_validated_path(request) @unvalidated_requests.delete(request) end
validate_documentation()
click to toggle source
@return [DocumentationValidator] validation result
# File lib/openapi_validator/validator.rb, line 12 def validate_documentation DocumentationValidator.call(api_doc, additional_schemas: additional_schemas) end
validate_request(**params)
click to toggle source
@return [Object] RequestValidator
# File lib/openapi_validator/validator.rb, line 17 def validate_request(**params) RequestValidator.call(request: Request.call(**params), validator: self) end
Private Instance Methods
build_unvalidated_requests()
click to toggle source
@return [Array]
# File lib/openapi_validator/validator.rb, line 40 def build_unvalidated_requests http_methods = %w[get put post delete options head patch trace] requests = [] api_doc["paths"]&.each do |path, methods| methods.each do |method, values| next unless http_methods.include?(method) values["responses"]&.each_key do |code| requests << [path, method, code] end end end requests end