diff --git a/modules/claims_api/app/sidekiq/claims_api/poa_vbms_updater.rb b/modules/claims_api/app/sidekiq/claims_api/poa_vbms_updater.rb index 650dc560ad1..65d80b67b15 100644 --- a/modules/claims_api/app/sidekiq/claims_api/poa_vbms_updater.rb +++ b/modules/claims_api/app/sidekiq/claims_api/poa_vbms_updater.rb @@ -7,6 +7,8 @@ module ClaimsApi class PoaVBMSUpdater < ClaimsApi::ServiceBase def perform(power_of_attorney_id) # rubocop:disable Metrics/MethodLength poa_form = ClaimsApi::PowerOfAttorney.find(power_of_attorney_id) + process = ClaimsApi::Process.find_or_create_by(processable: poa_form, step_type: 'POA_ACCESS_UPDATE') + process.update!(step_status: 'IN_PROGRESS') @external_uid = poa_form.external_uid @external_key = poa_form.external_key poa_code = extract_poa_code(poa_form.form_data) @@ -25,10 +27,12 @@ def perform(power_of_attorney_id) # rubocop:disable Metrics/MethodLength if response[:return_code] == 'GUIE50000' poa_form.status = ClaimsApi::PowerOfAttorney::UPDATED + process.update!(step_status: 'SUCCESS') poa_form.vbms_error_message = nil if poa_form.vbms_error_message.present? ClaimsApi::Logger.log('poa_vbms_updater', poa_id: power_of_attorney_id, detail: 'VBMS Success') else poa_form.status = ClaimsApi::PowerOfAttorney::ERRORED + process.update!(step_status: 'FAILED') poa_form.vbms_error_message = 'update_poa_access failed with code ' \ "#{response[:return_code]}: #{response[:return_message]}" ClaimsApi::Logger.log('poa_vbms_updater', @@ -40,6 +44,7 @@ def perform(power_of_attorney_id) # rubocop:disable Metrics/MethodLength poa_form.save rescue BGS::ShareError => e poa_form.status = ClaimsApi::PowerOfAttorney::ERRORED + process.update!(step_status: 'FAILED') poa_form.vbms_error_message = e.respond_to?(:message) ? e.message : 'BGS::ShareError' poa_form.save ClaimsApi::Logger.log('poa', poa_id: poa_form.id, detail: 'BGS Error', error: e) diff --git a/modules/claims_api/spec/sidekiq/poa_vbms_updater_spec.rb b/modules/claims_api/spec/sidekiq/poa_vbms_updater_spec.rb index a26b09ed5cb..666c3de44be 100644 --- a/modules/claims_api/spec/sidekiq/poa_vbms_updater_spec.rb +++ b/modules/claims_api/spec/sidekiq/poa_vbms_updater_spec.rb @@ -37,6 +37,8 @@ poa = create_poa(allow_poa_access: true) create_mock_lighthouse_service subject.new.perform(poa.id) + process = ClaimsApi::Process.find_by(processable: poa, step_type: 'POA_ACCESS_UPDATE') + expect(process.step_status).to eq('SUCCESS') end end @@ -48,6 +50,8 @@ poa = create_poa(allow_poa_access: true) create_mock_lighthouse_service subject.new.perform(poa.id) + process = ClaimsApi::Process.find_by(processable: poa, step_type: 'POA_ACCESS_UPDATE') + expect(process.step_status).to eq('SUCCESS') end end @@ -59,6 +63,8 @@ poa = create_poa(allow_poa_access: true) create_mock_lighthouse_service subject.new.perform(poa.id) + process = ClaimsApi::Process.find_by(processable: poa, step_type: 'POA_ACCESS_UPDATE') + expect(process.step_status).to eq('SUCCESS') end end @@ -74,6 +80,8 @@ poa.reload expect(poa.status).to eq('errored') expect(poa.vbms_error_message).to eq('updatePoaAccess: No POA found on system of record') + process = ClaimsApi::Process.find_by(processable: poa, step_type: 'POA_ACCESS_UPDATE') + expect(process.step_status).to eq('FAILED') end end