Class: Importo::Import

Inherits:
ApplicationRecord show all
Defined in:
app/models/importo/import.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#checked_columnsObject

include ActiveStorage::Downloading



6
7
8
# File 'app/models/importo/import.rb', line 6

def checked_columns
  @checked_columns
end

Instance Method Details

#allow_export?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'app/models/importo/import.rb', line 69

def allow_export?
  importer.class.allow_export?
end

#can_revert?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'app/models/importo/import.rb', line 65

def can_revert?
  importer.allow_revert? && super
end

#content_validatorObject



73
74
75
76
77
78
79
80
81
82
# File 'app/models/importo/import.rb', line 73

def content_validator
  unless importer.structure_valid?
    errors.add(:original,
      I18n.t("importo.errors.structure_invalid",
        invalid_headers: importer.invalid_header_names.join(", ")))
  end
rescue => e
  Rails.logger.info "Importo failed excpetion: #{e.message} backtrace #{e.backtrace.join(";")}"
  errors.add(:original, I18n.t("importo.errors.parse_error", error: e.message))
end

#failure?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'app/models/importo/import.rb', line 88

def failure?
  results.where("details @> ?", '{"state":"failure"}').any?
end

#importerObject



84
85
86
# File 'app/models/importo/import.rb', line 84

def importer
  @importer ||= "#{kind.camelize}Importer".constantize.new(self)
end

#no_failure?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'app/models/importo/import.rb', line 92

def no_failure?
  results.where("details @> ?", '{"state":"failure"}').none?
end

#no_processing?Boolean

Returns:

  • (Boolean)


108
109
110
# File 'app/models/importo/import.rb', line 108

def no_processing?
  results.where("details @> ?", '{"state":"processing"}').none?
end

#no_succes?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'app/models/importo/import.rb', line 100

def no_succes?
  results.where("details @> ?", '{"state":"success"}').none?
end

#processing?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'app/models/importo/import.rb', line 104

def processing?
  results.where("details @> ?", '{"state":"processing"}').any?
end

#success?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'app/models/importo/import.rb', line 96

def success?
  results.where("details @> ?", '{"state":"success"}').any?
end