Skip to content

Commit

Permalink
API-40256-set-5103-status-errored-if-errored
Browse files Browse the repository at this point in the history
* Sets errored status if an error occurs.
* Handles setting status back to pending after the upload succeeds
* Adds tests
	modified:   modules/claims_api/app/sidekiq/claims_api/evidence_waiver_builder_job.rb
	modified:   modules/claims_api/app/sidekiq/claims_api/service_base.rb
	modified:   modules/claims_api/spec/sidekiq/service_base_spec.rb
  • Loading branch information
rockwellwindsor-va committed Sep 23, 2024
1 parent 5c10857 commit f0a25a5
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,27 @@ def perform(evidence_waiver_id)
# upload to BD
benefits_doc_api.upload(claim: lighthouse_claim, pdf_path: output_path,
doc_type: 'L705', pctpnt_vet_id: auth_headers['target_veteran_folder_id'])

# with a successful upload we can set this back to pending if it errored previously
update_status_for_submssion(lighthouse_claim)

ClaimsApi::EwsUpdater.perform_async(evidence_waiver_id)
::Common::FileHelpers.delete_file_if_exists(output_path)
rescue => e
set_state_for_submission(lighthouse_claim, ClaimsApi::EvidenceWaiverSubmission::ERRORED)

ClaimsApi::Logger.log('EWS_builder', retry: true, detail: 'failed to upload to BD')
raise e
end

def benefits_doc_api
ClaimsApi::BD.new
end

def update_status_for_submission(lighthouse_claim)
pending_state = ClaimsApi::EvidenceWaiverSubmission::PENDING

set_state_for_submission(lighthouse_claim, pending_state) if lighthouse_claim.status != pending_state
end
end
end
5 changes: 5 additions & 0 deletions modules/claims_api/app/sidekiq/claims_api/service_base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ def retry_limits_for_notification

protected

def set_state_for_submission(submission, state)
submission.status = state
submission.save!
end

def preserve_original_form_data(form_data)
form_data.deep_dup.freeze
end
Expand Down
23 changes: 23 additions & 0 deletions modules/claims_api/spec/sidekiq/service_base_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
let(:claim_date) { (Time.zone.today - 1.day).to_s }
let(:anticipated_separation_date) { 2.days.from_now.strftime('%m-%d-%Y') }

let(:ews) { create(:claims_api_evidence_waiver_submission, :with_full_headers_tamara) }
let(:errored_ews) { create(:claims_api_evidence_waiver_submission, :with_full_headers_tamara, status: 'errored') }

let(:form_data) do
temp = Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', 'disability_compensation',
'form_526_json_api.json').read
Expand Down Expand Up @@ -52,6 +55,26 @@
end
end

describe '#set_state_for_submission' do
it 'updates claim status as ERRORED' do
@service.send(:set_state_for_submission, claim, 'errored')
claim.reload
expect(claim.status).to eq('errored')
end

it 'updates EWS status as ERRORED' do
@service.send(:set_state_for_submission, ews, 'errored')
ews.reload
expect(ews.status).to eq('errored')
end

it 'updates EWS status as PENDING' do
@service.send(:set_state_for_submission, errored_ews, 'pending')
errored_ews.reload
expect(errored_ews.status).to eq('pending')
end
end

describe '#preserve_original_form_data' do
it 'preserves the form data as expected' do
preserved_form_data = @service.send(:preserve_original_form_data, claim.form_data)
Expand Down

0 comments on commit f0a25a5

Please sign in to comment.