Class: CDP::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/cdp/validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(field_schema:) ⇒ Validator

Returns a new instance of Validator.



5
6
7
8
9
10
# File 'lib/cdp/validator.rb', line 5

def initialize(field_schema:)
  @field_schema = field_schema
  field_types = @field_schema[:field_types]

  @fields_validations = build_statements(field_types)
end

Instance Method Details

#create(attributes:) ⇒ Object



12
13
14
15
16
# File 'lib/cdp/validator.rb', line 12

def create(attributes:)
  validator = ValidKit::Validator.new(@fields_validations.values.flatten)

  validator.validate(attributes)
end

#is_correlator?(field_name:) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
37
# File 'lib/cdp/validator.rb', line 30

def is_correlator?(field_name:)
  return true if field_name == 'entity_uuid'
  field = @field_schema[:field_types][field_name]

  return false unless field && field.key?(:is_correlator)

  field[:is_correlator]
end

#update(attributes:) ⇒ Object



18
19
20
21
22
23
# File 'lib/cdp/validator.rb', line 18

def update(attributes:)
  update_validations = @fields_validations.slice(*attributes.keys.map(&:to_s))
  validator = ValidKit::Validator.new(update_validations.values.flatten)

  validator.validate(attributes)
end

#upsert(attributes:) ⇒ Object



25
26
27
# File 'lib/cdp/validator.rb', line 25

def upsert(attributes:)
  create(attributes: attributes)
end