Module: Bulkrax::StatusInfo

Extended by:
ActiveSupport::Concern
Included in:
Entry, Exporter, Importer
Defined in:
app/models/concerns/bulkrax/status_info.rb

Instance Method Summary collapse

Instance Method Details

#current_statusObject



15
16
17
18
# File 'app/models/concerns/bulkrax/status_info.rb', line 15

def current_status
  last_status = self.statuses.last
  last_status if last_status && last_status.runnable == last_run
end

#failed?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'app/models/concerns/bulkrax/status_info.rb', line 20

def failed?
  current_status&.status_message&.match(/fail/i)
end

#last_errorObject

api compatible with previous error structure



47
48
49
50
51
52
53
54
# File 'app/models/concerns/bulkrax/status_info.rb', line 47

def last_error
  return unless current_status && current_status.error_class.present?
  {
    error_class: current_status.error_class,
    error_message: current_status.error_message,
    error_trace: current_status.error_backtrace
  }.with_indifferent_access
end

#statusObject



28
29
30
# File 'app/models/concerns/bulkrax/status_info.rb', line 28

def status
  current_status&.status_message || 'Pending'
end

#status_atObject



32
33
34
# File 'app/models/concerns/bulkrax/status_info.rb', line 32

def status_at
  current_status&.created_at
end

#status_info(e = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'app/models/concerns/bulkrax/status_info.rb', line 36

def status_info(e = nil)
  if e.nil?
    self.statuses.create!(status_message: 'Complete', runnable: last_run)
  elsif e.is_a?(String)
    self.statuses.create!(status_message: e, runnable: last_run)
  else
    self.statuses.create!(status_message: 'Failed', runnable: last_run, error_class: e.class.to_s, error_message: e.message, error_backtrace: e.backtrace)
  end
end

#succeeded?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'app/models/concerns/bulkrax/status_info.rb', line 24

def succeeded?
  current_status&.status_message&.match(/^Complete$/)
end