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)


72
73
74
# File 'app/models/importo/import.rb', line 72

def allow_export?
  importer.class.allow_export?
end

#can_revert?Boolean

Returns:

  • (Boolean)


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

def can_revert?
  importer.allow_revert? && super
end

#content_validatorObject



76
77
78
79
80
81
82
83
84
85
# File 'app/models/importo/import.rb', line 76

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)


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

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

#importerObject



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

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

#no_failure?Boolean

Returns:

  • (Boolean)


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

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

#no_processing?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'app/models/importo/import.rb', line 111

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

#no_succes?Boolean

Returns:

  • (Boolean)


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

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

#processing?Boolean

Returns:

  • (Boolean)


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

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

#success?Boolean

Returns:

  • (Boolean)


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

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