module OpenAPIParser::ParameterValidatable

Public Instance Methods

set_parent_path_item(path_item) click to toggle source

@param [PathItem] path_item parent

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 17
def set_parent_path_item(path_item)
  @merged_parameter = (parameters || []) + (path_item.parameters || [])
  nil
end
validate_path_params(path_params, options) click to toggle source

@param [Hash] path_params path parameters @param [OpenAPIParser::SchemaValidator::Options] options request validator options

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 4
def validate_path_params(path_params, options)
  OpenAPIParser::ParameterValidator.validate_parameter(path_parameter_hash, path_params, object_reference, options)
end
validate_request_parameter(params, headers, options) click to toggle source

@param [Hash] params parameter hash @param [Hash] headers headers hash @param [OpenAPIParser::SchemaValidator::Options] options request validator options

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 11
def validate_request_parameter(params, headers, options)
  validate_header_parameter(headers, object_reference, options) if options.validate_header
  validate_query_parameter(params, object_reference, options)
end

Private Instance Methods

divided_parameter_hash() click to toggle source

@return [Hash{String => Hash{String => Parameter}}] hash[name] => Parameter

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 51
def divided_parameter_hash
  @divided_parameter_hash ||=
    (@merged_parameter || []).
      group_by(&:in).
      map { |in_type, params| # rubocop:disable Style/BlockDelimiters
      [
        in_type,
        params.map { |param| [param.name, param] }.to_h,
      ]
    }.to_h
end
header_parameter_hash() click to toggle source
# File lib/openapi_parser/concerns/parameter_validatable.rb, line 38
def header_parameter_hash
  divided_parameter_hash['header'] || []
end
path_parameter_hash() click to toggle source
# File lib/openapi_parser/concerns/parameter_validatable.rb, line 42
def path_parameter_hash
  divided_parameter_hash['path'] || []
end
query_parameter_hash() click to toggle source
# File lib/openapi_parser/concerns/parameter_validatable.rb, line 46
def query_parameter_hash
  divided_parameter_hash['query'] || []
end
validate_header_parameter(headers, object_reference, options) click to toggle source

@param [Hash] headers header hash @param [String] object_reference @param [OpenAPIParser::SchemaValidator::Options] options request validator options

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 34
def validate_header_parameter(headers, object_reference, options)
  OpenAPIParser::ParameterValidator.validate_parameter(header_parameter_hash, headers, object_reference, options, true)
end
validate_query_parameter(params, object_reference, options) click to toggle source

@param [Hash] params query parameter hash @param [String] object_reference @param [OpenAPIParser::SchemaValidator::Options] options request validator options

# File lib/openapi_parser/concerns/parameter_validatable.rb, line 27
def validate_query_parameter(params, object_reference, options)
  OpenAPIParser::ParameterValidator.validate_parameter(query_parameter_hash, params, object_reference, options)
end