Sha256: fb2fff68e7899b2fa5d650f0ec5a9d0ad54c1c881fc22872f8060620d5ef4938

Contents?: true

Size: 1001 Bytes

Versions: 43

Compression:

Stored size: 1001 Bytes

Contents

module ForestAdminDatasourceToolkit
  module Validations
    class RecordValidator
      include ForestAdminDatasourceToolkit::Exceptions

      def self.validate(collection, record_data)
        raise ForestException, 'The record data is empty' if !record_data || record_data.empty?

        record_data.each_key do |key|
          schema = collection.schema[:fields][key]

          if !schema
            raise ForestException, "Unknown field #{key}"
          elsif schema.type == 'Column'
            FieldValidator.validate(collection, key, record_data[key])
          elsif schema.type == 'OneToOne' || schema.type == 'ManyToOne'
            sub_record = record_data[key]
            association = collection.datasource.get_collection(schema.foreign_collection)
            RecordValidator.validate(association, sub_record)
          else
            raise ForestException, "Unexpected schema type '#{schema.type}' while traversing record"
          end
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
forest_admin_datasource_toolkit-1.0.0.pre.beta.89 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.88 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.87 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.86 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.85 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.83 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.82 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.81 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.80 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.79 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.78 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.77 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.76 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.75 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.74 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.73 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.72 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.71 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.70 lib/forest_admin_datasource_toolkit/validations/record_validator.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.69 lib/forest_admin_datasource_toolkit/validations/record_validator.rb