Class: ExtractRequest::NewuiExtractValidator

Inherits:
ActiveModel::Validator
  • Object
show all
Defined in:
app/models/extract_request.rb

Instance Method Summary collapse

Instance Method Details

#validate(record) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/models/extract_request.rb', line 38

def validate(record)
  record.errors[:base] << 'Undefined User' if record.user.blank?
  record.errors[:base] << 'Undefined Extract' if record.data.blank?
  record.errors[:base] << 'Unknown Extract Type' if record.data["type"].blank?
  record.errors[:base] << 'Wrong Extract Type' unless ["arealevel", "microdata", "raster"].include?(record.data["type"])
  record.errors[:base] << 'Unknown Extract Title' if record.data["title"].blank?
  record.errors[:base] << "Wrong value in 'Include boundary files'" unless !!record.data["boundary"] == record.data["boundary"]
  record.errors[:base] << "Wrong value in 'Send Extract to data grid'" unless !!record.data["datagrid"] == record.data["datagrid"]
  case record.data["type"]
  when "microdata"
  when "arealevel"
    if record.data["arealevel_variables"].empty? && record.data["arealevel_datasets"].empty?
      if record.data["raster_variables"].empty? && record.data["raster_datasets"].empty?
        record.errors[:base] << "Both 'Area-Level Data' and 'Raster Data' are empty"
      else
        record.errors[:base] << "Missing 'Georgraphic Level' for 'Raster Data'" if record.data["raster_geographic_levels"].empty?
        record.errors[:base] << "Missing 'Operations' for 'Raster Data'" if record.data["raster_operations"].empty?
      end
    else
      record.errors[:base] << "Missing 'Georgraphic Level' for 'Area-Level Data'" if record.data["arealevel_geographic_levels"].empty?
      record.errors[:base] << "Missing 'Operations' for 'Raster Data'" if !(record.data["raster_variables"].empty? || record.data["raster_datasets"].empty?) && record.data["raster_operations"].empty?
    end
  when "raster"
  end
end