Class: Renalware::Feeds::Files::PracticeMemberships::ImportJob

Inherits:
ApplicationJob
  • Object
show all
Includes:
Job, StringLogging
Defined in:
app/models/renalware/feeds/files/practice_memberships/import_job.rb

Constant Summary collapse

FILE_TO_EXTRACT_FROM_ARCHIVE =
/epracmem.csv/.freeze

Instance Method Summary collapse

Methods included from Job

#find_file_in, #formatted_exception, #log

Methods included from StringLogging

#logging_to_stringio

Instance Method Details

#perform(file) ⇒ Object

TODO: refactor



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/models/renalware/feeds/files/practice_memberships/import_job.rb', line 14

def perform(file)
  logging_to_stringio(strio = StringIO.new)
  log "Before upload there are #{practice_membership_count} practice memberships"
  file.update!(status: :processing, attempts: file.attempts + 1)
  status = :success
  elapsed_ms = Benchmark.ms { process_archive(file.location) }
  log "After upload there are #{practice_membership_count} practice memberships"
rescue StandardError => e
  Rails.logger.error(formatted_exception(e))
  status = :failure
  raise e
ensure
  file.update!(status: status, result: strio.string, time_taken: elapsed_ms)
end