|
|
|
@ -10,6 +10,7 @@ class BulkUpload::Lettings::Validator |
|
|
|
|
|
|
|
|
|
|
|
validate :validate_file_not_empty |
|
|
|
validate :validate_file_not_empty |
|
|
|
validate :validate_field_numbers_count |
|
|
|
validate :validate_field_numbers_count |
|
|
|
|
|
|
|
validate :validate_max_columns_count_if_no_headers |
|
|
|
|
|
|
|
|
|
|
|
def initialize(bulk_upload:, path:) |
|
|
|
def initialize(bulk_upload:, path:) |
|
|
|
@bulk_upload = bulk_upload |
|
|
|
@bulk_upload = bulk_upload |
|
|
|
@ -134,6 +135,14 @@ private |
|
|
|
errors.add(:base, :wrong_field_numbers_count) if csv_parser.valid_field_numbers_count != csv_parser.class::FIELDS |
|
|
|
errors.add(:base, :wrong_field_numbers_count) if csv_parser.valid_field_numbers_count != csv_parser.class::FIELDS |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def validate_max_columns_count_if_no_headers |
|
|
|
|
|
|
|
return if halt_validations? || csv_parser.with_headers? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
max_columns_count = body_rows.map(&:size).max - col_offset |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
errors.add(:base, :over_max_column_count) if max_columns_count > csv_parser.class::MAX_COLUMNS |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def halt_validations! |
|
|
|
def halt_validations! |
|
|
|
@halt_validations = true |
|
|
|
@halt_validations = true |
|
|
|
end |
|
|
|
end |
|
|
|
|