Class: Importo::Import

Inherits:
ApplicationRecord
  • Object
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)


78
79
80
# File 'app/models/importo/import.rb', line 78

def allow_export?
  importer.class.allow_export?
end

#can_revert?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'app/models/importo/import.rb', line 74

def can_revert?
  importer.allow_revert? && super
end

#content_validatorObject



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

#export_state?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


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

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

#importerObject



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

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

#no_failure?Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


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

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

#processing?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


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

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