Class: InputSanitizer::V2::PayloadSanitizer

Inherits:
Sanitizer
  • Object
show all
Defined in:
lib/input_sanitizer/v2/payload_sanitizer.rb

Direct Known Subclasses

QuerySanitizer

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, validation_context = {}) ⇒ PayloadSanitizer

Returns a new instance of PayloadSanitizer.



4
5
6
7
8
# File 'lib/input_sanitizer/v2/payload_sanitizer.rb', line 4

def initialize(data, validation_context = {})
  super data

  self.validation_context = validation_context || {}
end

Instance Attribute Details

#validation_contextObject

Returns the value of attribute validation_context.



2
3
4
# File 'lib/input_sanitizer/v2/payload_sanitizer.rb', line 2

def validation_context
  @validation_context
end

Class Method Details

.convertersObject



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/input_sanitizer/v2/payload_sanitizer.rb', line 19

def self.converters
  {
    :integer => InputSanitizer::V2::Types::IntegerCheck.new,
    :float => InputSanitizer::V2::Types::FloatCheck.new,
    :string => InputSanitizer::V2::Types::StringCheck.new,
    :boolean => InputSanitizer::V2::Types::BooleanCheck.new,
    :datetime => InputSanitizer::V2::Types::DatetimeCheck.new,
    :date => InputSanitizer::V2::Types::DatetimeCheck.new(:check_date => true),
    :url => InputSanitizer::V2::Types::URLCheck.new,
  }
end

.nested(*keys) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/input_sanitizer/v2/payload_sanitizer.rb', line 32

def self.nested(*keys)
  options = keys.pop
  sanitizer = options.delete(:sanitizer)
  keys.push(options)
  raise "You did not define a sanitizer for nested value" if sanitizer == nil
  converter = lambda { |value, converter_options|
    instance = InputSanitizer::V2::NestedSanitizerFactory.for(sanitizer, value, converter_options)
    raise InputSanitizer::NestedError.new(instance.errors) unless instance.valid?
    instance.cleaned
  }

  keys << {} unless keys.last.is_a?(Hash)
  keys.last[:nested] = true

  self.set_keys_to_converter(keys, converter)
end

Instance Method Details

#error_collectionObject



15
16
17
# File 'lib/input_sanitizer/v2/payload_sanitizer.rb', line 15

def error_collection
  @error_collection ||= InputSanitizer::V2::ErrorCollection.new(errors)
end