Class: Lighthouse::DocumentUpload

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job
Defined in:
app/sidekiq/lighthouse/document_upload.rb

Instance Method Summary collapse

Instance Method Details

#perform(user_icn, document_hash) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/sidekiq/lighthouse/document_upload.rb', line 17

def perform(user_icn, document_hash)
  document, client, uploader, file_body = nil

  Datadog::Tracing.trace('Config/Initialize Upload Document') do
    Raven.tags_context(source: 'documents-upload')
    document = LighthouseDocument.new document_hash

    raise Common::Exceptions::ValidationErrors, document_data unless document.valid?

    client = BenefitsDocuments::WorkerService.new(user_icn)
    uploader = LighthouseDocumentUploader.new(user_icn, document.uploader_ids)
    uploader.retrieve_from_store!(document.file_name)
  end
  Datadog::Tracing.trace('Sidekiq read_for_upload') do
    file_body = uploader.read_for_upload
  end
  Datadog::Tracing.trace('Sidekiq Upload Document') do |span|
    span.set_tag('Document File Size', file_body.size)
    client.upload_document(file_body, document)
  end
  Datadog::Tracing.trace('Remove Upload Document') do
    uploader.remove!
  end
end