Class: Importo::Import
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- Importo::Import
- Defined in:
- app/models/importo/import.rb
Instance Attribute Summary collapse
-
#checked_columns ⇒ Object
include ActiveStorage::Downloading.
Instance Method Summary collapse
- #allow_export? ⇒ Boolean
- #can_revert? ⇒ Boolean
- #content_validator ⇒ Object
- #export_state? ⇒ Boolean
- #failure? ⇒ Boolean
- #importer ⇒ Object
- #no_failure? ⇒ Boolean
- #no_processing? ⇒ Boolean
- #no_succes? ⇒ Boolean
- #processing? ⇒ Boolean
- #run_transition_callbacks(transition) ⇒ Object
- #success? ⇒ Boolean
Instance Attribute Details
#checked_columns ⇒ Object
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
78 79 80 |
# File 'app/models/importo/import.rb', line 78 def allow_export? importer.class.allow_export? end |
#can_revert? ⇒ Boolean
74 75 76 |
# File 'app/models/importo/import.rb', line 74 def can_revert? importer.allow_revert? && super end |
#content_validator ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'app/models/importo/import.rb', line 82 def content_validator return if export_state? 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.} backtrace #{e.backtrace.join(";")}" errors.add(:original, I18n.t("importo.errors.parse_error", error: e.)) end |
#export_state? ⇒ Boolean
123 124 125 |
# File 'app/models/importo/import.rb', line 123 def export_state? %w[exporting exported failed].include?(state) && original.blank? end |
#failure? ⇒ Boolean
99 100 101 |
# File 'app/models/importo/import.rb', line 99 def failure? results.where("details @> ?", '{"state":"failure"}').any? end |
#importer ⇒ Object
95 96 97 |
# File 'app/models/importo/import.rb', line 95 def importer @importer ||= "#{kind.camelize}Importer".constantize.new(self) end |
#no_failure? ⇒ Boolean
103 104 105 |
# File 'app/models/importo/import.rb', line 103 def no_failure? results.where("details @> ?", '{"state":"failure"}').none? end |
#no_processing? ⇒ Boolean
119 120 121 |
# File 'app/models/importo/import.rb', line 119 def no_processing? results.where("details @> ?", '{"state":"processing"}').none? end |
#no_succes? ⇒ Boolean
111 112 113 |
# File 'app/models/importo/import.rb', line 111 def no_succes? results.where("details @> ?", '{"state":"success"}').none? end |
#processing? ⇒ Boolean
115 116 117 |
# File 'app/models/importo/import.rb', line 115 def processing? results.where("details @> ?", '{"state":"processing"}').any? end |
#run_transition_callbacks(transition) ⇒ Object
127 128 129 130 131 |
# File 'app/models/importo/import.rb', line 127 def run_transition_callbacks(transition) importer.run_callbacks(transition.to_name) do yield end end |
#success? ⇒ Boolean
107 108 109 |
# File 'app/models/importo/import.rb', line 107 def success? results.where("details @> ?", '{"state":"success"}').any? end |