Skip to content

Commit 216bf5b

Browse files
committed
Merge branch 'master' of github.com:department-of-veterans-affairs/vets-api into mm/2026-migrate-hca-to-queue-email-job
2 parents 09146a4 + 30666f3 commit 216bf5b

44 files changed

Lines changed: 799 additions & 60 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,7 @@ config/form_profile_mappings/21-0538.yml @department-of-veterans-affairs/benefit
743743
config/form_profile_mappings/21-22.yml @department-of-veterans-affairs/accredited-representative-crew @department-of-veterans-affairs/backend-review-group
744744
config/form_profile_mappings/21-22A.yml @department-of-veterans-affairs/accredited-representative-crew @department-of-veterans-affairs/backend-review-group
745745
config/form_profile_mappings/21-2680.yml @department-of-veterans-affairs/benefits-optimization-aquia @department-of-veterans-affairs/backend-review-group
746+
config/form_profile_mappings/21-4140.yml @department-of-veterans-affairs/benefits-intake-pingwind @department-of-veterans-affairs/backend-review-group
746747
config/form_profile_mappings/21-526EZ.yml @department-of-veterans-affairs/disability-benefits @department-of-veterans-affairs/backend-review-group
747748
config/form_profile_mappings/21-686C.yml @department-of-veterans-affairs/disability-benefits @department-of-veterans-affairs/backend-review-group
748749
config/form_profile_mappings/21-4138.yml @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/backend-review-group
@@ -1127,6 +1128,7 @@ lib/search @department-of-veterans-affairs/backend-review-group
11271128
lib/search/pii_redactor.rb @department-of-veterans-affairs/backend-review-group
11281129
lib/search_click_tracking @department-of-veterans-affairs/backend-review-group
11291130
lib/search_gsa @department-of-veterans-affairs/backend-review-group
1131+
lib/semantic_logger/safe_json_formatter.rb @department-of-veterans-affairs/backend-review-group
11301132
lib/sentry @department-of-veterans-affairs/backend-review-group
11311133
lib/sftp_writer @department-of-veterans-affairs/backend-review-group
11321134
lib/shrine @department-of-veterans-affairs/backend-review-group
@@ -1735,6 +1737,7 @@ spec/lib/search @department-of-veterans-affairs/backend-review-group
17351737
spec/lib/search/pii_redactor_spec.rb @department-of-veterans-affairs/backend-review-group
17361738
spec/lib/search_click_tracking @department-of-veterans-affairs/backend-review-group
17371739
spec/lib/search_gsa @department-of-veterans-affairs/backend-review-group
1740+
spec/lib/semantic_logger/safe_json_formatter_spec.rb @department-of-veterans-affairs/backend-review-group
17381741
spec/lib/sentry @department-of-veterans-affairs/backend-review-group
17391742
spec/lib/sftp_writer @department-of-veterans-affairs/backend-review-group
17401743
spec/lib/sftp_writer/factory_spec.rb @department-of-veterans-affairs/backend-review-group
@@ -1848,6 +1851,7 @@ spec/models/form_profiles/va10282_spec.rb @department-of-veterans-affairs/govcio
18481851
spec/models/form_profiles/va10297_spec.rb @department-of-veterans-affairs/govcio-vfep-codereviewers @department-of-veterans-affairs/backend-review-group
18491852
spec/models/form_profiles/va1330m_spec.rb @department-of-veterans-affairs/bah-mbs-selfserv @department-of-veterans-affairs/backend-review-group
18501853
spec/models/form_profiles/va214138_spec.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/backend-review-group
1854+
spec/models/form_profiles/va214140_spec.rb @department-of-veterans-affairs/benefits-intake-pingwind @department-of-veterans-affairs/backend-review-group
18511855
spec/models/form_submission_attempt_spec.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/disability-benefits @department-of-veterans-affairs/backend-review-group
18521856
spec/models/form_submission_spec.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/disability-benefits @department-of-veterans-affairs/backend-review-group
18531857
spec/models/form1010cg @department-of-veterans-affairs/health-apps-backend @department-of-veterans-affairs/backend-review-group

app/controllers/concerns/authentication_and_sso_concerns.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ def set_cerner_eligibility_cookie
117117
}
118118

119119
Rails.logger.info('[SessionsController] Cerner Eligibility', eligible:, previous_value:, cookie_action: :set,
120-
icn: @current_user.icn)
120+
icn: @current_user.icn,
121+
cerner_limited: current_user.cerner_limited?)
121122
end
122123

123124
def set_session_expiration_header

app/controllers/v0/dependents_applications_controller.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def create # rubocop:disable Metrics/MethodLength
4646
if claim_info[:proc_state] == 'MANUAL_VAGOV' && claim_info[:participant_id].present?
4747
user_data = DependentsBenefits::UserData.new(current_user, claim.parsed_form)
4848
claim.add_veteran_info(JSON.parse(user_data.get_user_json))
49-
claim.add_signature_date
5049

5150
submission = submit_via_forms_api(claim, claim_info[:claim_label], claim_info[:participant_id])
5251

@@ -88,8 +87,7 @@ def create # rubocop:disable Metrics/MethodLength
8887
def submit_via_forms_api(claim, claim_label, participant_id)
8988
digital_forms_api_submission_service ||= DigitalFormsApi::Service::Submissions.new
9089

91-
payload = claim.parsed_form.deep_dup
92-
payload = claim.deep_camelize_keys(payload.merge(payload.delete('dependents_application')))
90+
payload = claim.fdf_submission_payload
9391
metadata = {
9492
sourceRequestId: claim.guid,
9593
formId: claim.claim_form_type,

app/controllers/v0/my_va/submission_statuses_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def restricted_list_of_forms
3030

3131
def restricted_benefits_intake_forms
3232
%w[20-10206 20-10207 21-0845 21-0972 21-10210 21-4142 21-4140 21-4142a 21-4502 21-8940V1 21P-0847 21P-527EZ
33-
21P-530EZ 21P-0969 21P-535 21-2680 21-0779 21-4192 21P-530a] + uploadable_forms
33+
21P-530EZ 21P-0969 21P-535 21-2680 21-0779 21-4192 21P-530a 21-4138] + uploadable_forms
3434
end
3535

3636
def decision_reviews_forms_if_enabled

app/models/form_profile.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class FormProfile
100100
22-5495 22-0993 22-0994 FEEDBACK-TOOL 22-10203 22-1990EZ
101101
22-10297 22-0803 22-10272 22-10278 22-0976 22-0989 22-0810 22-0839],
102102
evss: ['21-526EZ'],
103+
form214140: ['21-4140'],
103104
form_mock_ae_design_patterns: ['FORM-MOCK-AE-DESIGN-PATTERNS'],
104105
form_mock_prefill: ['FORM-MOCK-PREFILL'],
105106
form_upload: %w[

app/models/form_profiles/va_214140.rb

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,46 @@ class FormProfiles::VA214140 < FormProfile
66
def metadata
77
{
88
version: 0,
9-
prefill: true,
9+
prefill: prefill_enabled?,
1010
returnUrl: '/name-and-date-of-birth'
1111
}
1212
end
13+
14+
def prefill_enabled?
15+
Flipper.enabled?(:form214140_prefill_enabled)
16+
end
17+
18+
##
19+
# Prefills the form data with identity and contact information
20+
#
21+
# This method initializes identity and contact information, converts the country code
22+
# to ISO2 format if present, and maps data according to form-specific mappings
23+
#
24+
# @return [Hash]
25+
def prefill
26+
return { form_data: {}, metadata: } unless prefill_enabled?
27+
28+
@identity_information = initialize_identity_information
29+
@military_information = initialize_military_information
30+
@contact_information = initialize_contact_information
31+
contact_information.email ||= user.email
32+
contact_information.us_phone ||= user&.home_phone&.gsub(/\D/, '')
33+
34+
mappings = self.class.mappings_for_form(form_id)
35+
36+
form_data = generate_prefill(mappings) if FormProfile.prefill_enabled_forms.include?(form_id)
37+
38+
{ form_data:, metadata: }
39+
end
40+
41+
##
42+
# Retrieves the VA file number or SSN from BGS
43+
#
44+
# @return [String]
45+
def va_file_number
46+
response = BGS::People::Request.new.find_person_by_participant_id(user:)
47+
response.file_number.presence || user.ssn.presence
48+
rescue => e
49+
Rails.logger.warn('Form 21-4140::FormProfile Problem Extracting file_number', { error: e })
50+
end
1351
end

app/services/sign_in/user_loader.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,18 @@ def validate_account_and_session
5757
end
5858

5959
def set_cerner_eligibility_cookie
60-
cookies.permanent[CERNER_ELIGIBLE_COOKIE_NAME] = {
61-
value: current_user.cerner_full?,
60+
cookie_name = CERNER_ELIGIBLE_COOKIE_NAME
61+
previous_value = ActiveModel::Type::Boolean.new.cast(cookies.signed[cookie_name] || cookies[cookie_name])
62+
eligible = current_user.cerner_full?
63+
64+
cookies.permanent[cookie_name] = {
65+
value: eligible,
6266
domain: IdentitySettings.sign_in.info_cookie_domain
6367
}
68+
69+
Rails.logger.info('[SignIn][UserLoader] Cerner Eligibility', eligible:, previous_value:, cookie_action: :set,
70+
icn: user_account.icn,
71+
cerner_limited: current_user.cerner_limited?)
6472
end
6573

6674
def user_attributes

app/sidekiq/event_bus_gateway/letter_ready_email_job.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class LetterReadyEmailJob
3030
{ job_id:, timestamp:, error_class:, error_message: })
3131
tags = Constants::DD_TAGS + ["function: #{error_message}"]
3232
StatsD.increment("#{STATSD_METRIC_PREFIX}.exhausted", tags:)
33+
StatsD.increment('silent_failure', tags:)
3334
Sidekiq::AttrPackage.delete(cache_key) if cache_key
3435
end
3536

app/sidekiq/event_bus_gateway/letter_ready_notification_job.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class LetterReadyNotificationJob
2828
{ job_id:, timestamp:, error_class:, error_message: })
2929
tags = Constants::DD_TAGS + ["function: #{error_message}"]
3030
StatsD.increment("#{STATSD_METRIC_PREFIX}.exhausted", tags:)
31+
StatsD.increment('silent_failure', tags:)
3132
end
3233

3334
def perform(participant_id, email_template_id = nil, push_template_id = nil, sms_template_id = nil) # rubocop:disable Cop/AttrPackageDeleteOnSuccess

app/sidekiq/event_bus_gateway/letter_ready_push_job.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class LetterReadyPushJob
2626
{ job_id:, timestamp:, error_class:, error_message: })
2727
tags = Constants::DD_TAGS + ["function: #{error_message}"]
2828
StatsD.increment("#{STATSD_METRIC_PREFIX}.exhausted", tags:)
29+
StatsD.increment('silent_failure', tags:)
2930
Sidekiq::AttrPackage.delete(cache_key) if cache_key
3031
end
3132

0 commit comments

Comments
 (0)