Class: ImportDistribution::CsvHeaderValidator
- Inherits:
-
ActiveModel::Validator
- Object
- ActiveModel::Validator
- ImportDistribution::CsvHeaderValidator
- Defined in:
- app/models/import_distribution/csv_header_validator.rb
Overview
CsvHeaderValidator
Instance Method Summary collapse
Instance Method Details
#valid_csv_headers?(csv_file) ⇒ Boolean
25 26 27 28 29 30 |
# File 'app/models/import_distribution/csv_header_validator.rb', line 25 def valid_csv_headers?(csv_file) headers = CSV.parse(csv_file.download)[0] (["friendlier_id", "reference_type", "distribution_url", "label"] - headers).empty? rescue ArgumentError, ActiveStorage::FileNotFoundError false end |
#validate(record) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/models/import_distribution/csv_header_validator.rb', line 9 def validate(record) if record.csv_file.nil? record.errors.add(:csv_file, "Missing a required CSV header. friendlier_id, reference_type, distribution_url, and label are required.") return false end valid_csv_header = true unless valid_csv_headers?(record&.csv_file) valid_csv_header = false record.errors.add(:csv_file, "Missing a required CSV header. friendlier_id, reference_type, distribution_url, and label are required.") end valid_csv_header end |