Class: EVSS::RetrieveClaimsFromRemoteJob

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

Instance Method Summary collapse

Instance Method Details

#perform(user_uuid) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/sidekiq/evss/retrieve_claims_from_remote_job.rb', line 10

def perform(user_uuid)
  Raven.tags_context(source: 'claims-status')
  @user = User.find user_uuid
  tracker = EVSSClaimsSyncStatusTracker.find_or_build(user_uuid)
  auth_headers = EVSS::AuthHeaders.new(@user).to_h
  @client = EVSS::ClaimsService.new(auth_headers)
  raw_claims = @client.all_claims.body
  EVSSClaimService::EVSS_CLAIM_KEYS.each_with_object([]) do |key, claim_accum|
    next unless raw_claims[key]

    claim_accum << raw_claims[key].map do |raw_claim|
      create_or_update_claim(raw_claim)
    end
  end
  tracker.set_collection_status('SUCCESS')
rescue
  tracker.set_collection_status('FAILED')
  raise
end