Class: Importo::Import

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

Instance Method Summary collapse

Instance Method Details

#allow_export?Boolean

Returns:

  • (Boolean)


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

def allow_export?
  importer.class.allow_export?
end

#can_revert?Boolean

Returns:

  • (Boolean)


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

def can_revert?
  importer.allow_revert? && super
end

#content_validatorObject



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

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
  errors.add(:original, I18n.t("importo.errors.parse_error", error: e.message))
end

#failure?Boolean

Returns:

  • (Boolean)


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

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

#importerObject



82
83
84
# File 'app/models/importo/import.rb', line 82

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

#no_failure?Boolean

Returns:

  • (Boolean)


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

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

#no_processing?Boolean

Returns:

  • (Boolean)


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

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

#no_succes?Boolean

Returns:

  • (Boolean)


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

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

#processing?Boolean

Returns:

  • (Boolean)


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

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

#success?Boolean

Returns:

  • (Boolean)


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

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