Sha256: d8a1fe00b328466698051e0fb2b735fb0797b920bed8c3ad47835e3e22b94005

Contents?: true

Size: 657 Bytes

Versions: 9

Compression:

Stored size: 657 Bytes

Contents

# frozen_string_literal: true

require "csv"

# CSV Header Validation
class Import
  # CsvHeaderValidator
  class CsvHeaderValidator < ActiveModel::Validator
    def validate(record)
      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. Title, Resource Class, Access Rights, and ID are required.")
      end

      valid_csv_header
    end

    def valid_csv_headers?(csv_file)
      headers = CSV.parse(csv_file.download)[0]
      (["Title", "Resource Class", "Access Rights", "ID"] - headers).empty?
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
geoblacklight_admin-0.5.0 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.4.2 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.4.1 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.4.0 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.3.2 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.3.1 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.3.0 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.2.1 app/models/import/csv_header_validator.rb
geoblacklight_admin-0.1.0 app/models/import/csv_header_validator.rb