Class: BenefitsDocuments::Service

Inherits:
Common::Client::Base show all
Defined in:
lib/lighthouse/benefits_documents/service.rb

Constant Summary collapse

STATSD_KEY_PREFIX =
'api.benefits_documents'
STATSD_UPLOAD_LATENCY =
'lighthouse.api.benefits.documents.latency'

Instance Method Summary collapse

Methods inherited from Common::Client::Base

configuration, #raise_backend_exception

Methods included from SentryLogging

#log_exception_to_sentry, #log_message_to_sentry, #non_nil_hash?, #normalize_level, #rails_logger

Constructor Details

#initialize(user) ⇒ Service

Returns a new instance of Service.

Raises:

  • (ArgumentError)


13
14
15
16
17
18
# File 'lib/lighthouse/benefits_documents/service.rb', line 13

def initialize(user)
  @user = user
  raise ArgumentError, 'no user passed in for LH API request.' if @user.blank?

  super()
end

Instance Method Details

#cleanup_after_uploadObject



60
61
62
# File 'lib/lighthouse/benefits_documents/service.rb', line 60

def cleanup_after_upload
  FileUtils.rm_rf(@base_path) if @base_path
end

#file_numberObject



20
21
22
# File 'lib/lighthouse/benefits_documents/service.rb', line 20

def file_number
  BGS::People::Request.new.find_person_by_participant_id(user: @user).file_number
end

#queue_document_upload(params, lighthouse_client_id = nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/lighthouse/benefits_documents/service.rb', line 24

def queue_document_upload(params, lighthouse_client_id = nil)
  loggable_params = params.except(:password)
  loggable_params[:icn] = @user.icn
  Rails.logger.info('Parameters for document upload', loggable_params)

  start_timer = Time.zone.now
  claim_id = params[:claimId] || params[:claim_id]

  unless claim_id
    raise Common::Exceptions::InternalServerError,
          ArgumentError.new("Claim with id #{claim_id} not found")
  end

  jid = submit_document(params[:file], params, lighthouse_client_id)
  StatsD.measure(STATSD_UPLOAD_LATENCY, Time.zone.now - start_timer, tags: ['is_multifile:false'])
  jid
end

#queue_multi_image_upload_document(params, lighthouse_client_id = nil) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/lighthouse/benefits_documents/service.rb', line 42

def queue_multi_image_upload_document(params, lighthouse_client_id = nil)
  loggable_params = params.except(:password)
  loggable_params[:icn] = @user.icn
  Rails.logger.info('Parameters for document multi image upload', loggable_params)

  start_timer = Time.zone.now
  claim_id = params[:claimId] || params[:claim_id]
  unless claim_id
    raise Common::Exceptions::InternalServerError,
          ArgumentError.new("Claim with id #{claim_id} not found")
  end

  file_to_upload = generate_multi_image_pdf(params[:files])
  jid = submit_document(file_to_upload, params, lighthouse_client_id)
  StatsD.measure(STATSD_UPLOAD_LATENCY, Time.zone.now - start_timer, tags: ['is_multifile:true'])
  jid
end