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