Class: EVSS::FailedClaimsReport
- Inherits:
-
Object
- Object
- EVSS::FailedClaimsReport
- Includes:
- Sidekiq::Job
- Defined in:
- app/sidekiq/evss/failed_claims_report.rb
Constant Summary collapse
- S3_CLAIMS_RESOURCE_OPTIONS =
{ access_key_id: Settings.evss.s3.aws_access_key_id, secret_access_key: Settings.evss.s3.aws_secret_access_key, region: Settings.evss.s3.region }.freeze
Instance Method Summary collapse
Instance Method Details
#get_document_hash(evss_metadata) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/sidekiq/evss/failed_claims_report.rb', line 13 def get_document_hash() @dead_set ||= Sidekiq::DeadSet.new document_hash = nil @dead_set.each do |job| args = job.args this_document_hash = args[2] if args[1] == [:user_uuid] && this_document_hash['file_name'] == [:file_name] && ( [:tracked_item_id].nil? || [:tracked_item_id] == this_document_hash['tracked_item_id'] ) document_hash = this_document_hash break end end document_hash end |
#get_evss_metadata(file_path) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'app/sidekiq/evss/failed_claims_report.rb', line 36 def (file_path) file_path_split = file_path.split('/') has_tracked_item_id = file_path_split.size == 4 && file_path_split[2] != 'null' { user_uuid: file_path_split[1], tracked_item_id: has_tracked_item_id ? file_path_split[2].to_i : nil, file_name: file_path_split.last } end |
#perform ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/sidekiq/evss/failed_claims_report.rb', line 47 def perform s3 = Aws::S3::Resource.new(S3_CLAIMS_RESOURCE_OPTIONS) failed_uploads = [] sidekiq_retry_timeout = 21.days.ago %w[evss disability].each do |type| s3.bucket(Settings.evss.s3.bucket).objects(prefix: "#{type}_claim_documents").each do |object| if object.last_modified < sidekiq_retry_timeout failed_uploads << { file_path: object.key, last_modified: object.last_modified } end end end failed_uploads.each do |failed_upload| failed_upload[:document_hash] = get_document_hash((failed_upload[:file_path])) end FailedClaimsReportMailer.build(failed_uploads).deliver_now end |