From f95a9f99ff1bea6ceaa6d037af00a303298bdbf1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:55:00 -0500 Subject: [PATCH 01/22] Bump puma from 6.4.3 to 6.5.0 (#19594) Bumps [puma](https://github.com/puma/puma) from 6.4.3 to 6.5.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.4.3...v6.5.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Johnson <72466113+rjohnson2011@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cd3eeb94840..077296b8527 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -685,8 +685,8 @@ GEM net-smtp (0.5.0) net-protocol net-ssh (7.2.0) - nio4r (2.7.3) - nio4r (2.7.3-java) + nio4r (2.7.4) + nio4r (2.7.4-java) nkf (0.2.0) nkf (0.2.0-java) nokogiri (1.16.7) @@ -781,9 +781,9 @@ GEM psych (5.1.2-java) jar-dependencies (>= 0.1.7) public_suffix (6.0.1) - puma (6.4.3) + puma (6.5.0) nio4r (~> 2.0) - puma (6.4.3-java) + puma (6.5.0-java) nio4r (~> 2.0) pundit (2.4.0) activesupport (>= 3.0.0) From 83770cb6b3f5dc3c6ac6c9fedacc117071261490 Mon Sep 17 00:00:00 2001 From: Ryan Johnson <72466113+rjohnson2011@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:00:36 -0500 Subject: [PATCH 02/22] Revert "Revert "Bump rswag-ui from 2.15.0 to 2.16.0 (#19542)" (#19586)" (#19598) This reverts commit 749ece8a40229128410cdf497631157ab1dd9d96. --- Gemfile.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 077296b8527..66b709828f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -639,7 +639,7 @@ GEM rake (~> 13.0) lockbox (2.0.0) logger (1.6.1) - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) lumberjack (1.2.10) @@ -660,7 +660,7 @@ GEM rake mini_magick (4.13.2) mini_mime (1.1.5) - mini_portile2 (2.8.7) + mini_portile2 (2.8.8) minitest (5.25.1) mock_redis (0.46.0) msgpack (1.7.2) @@ -668,7 +668,7 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.4.1) - mutex_m (0.2.0) + mutex_m (0.3.0) nap (1.1.0) nenv (0.3.0) net-http (0.4.1) @@ -776,9 +776,9 @@ GEM byebug (~> 11.0) pry (>= 0.13, < 0.15) pstore (0.1.3) - psych (5.1.2) + psych (5.2.0) stringio - psych (5.1.2-java) + psych (5.2.0-java) jar-dependencies (>= 0.1.7) public_suffix (6.0.1) puma (6.5.0) @@ -805,7 +805,7 @@ GEM rack-timeout (0.7.0) rack-vcr (0.1.6) vcr (>= 2.9) - rackup (1.0.0) + rackup (1.0.1) rack (< 3) webrick rails (7.1.4.1) @@ -849,7 +849,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rchardet (1.8.0) - rdoc (6.7.0) + rdoc (6.8.1) psych (>= 4.0.0) redis (5.3.0) redis-client (>= 0.22.0) @@ -858,7 +858,7 @@ GEM redis-namespace (1.11.0) redis (>= 4) regexp_parser (2.9.2) - reline (0.5.10) + reline (0.5.11) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -927,9 +927,9 @@ GEM json-schema (>= 2.2, < 6.0) railties (>= 5.2, < 8.0) rspec-core (>= 2.14) - rswag-ui (2.15.0) - actionpack (>= 5.2, < 8.0) - railties (>= 5.2, < 8.0) + rswag-ui (2.16.0) + actionpack (>= 5.2, < 8.1) + railties (>= 5.2, < 8.1) rtesseract (3.1.3) rubocop (1.68.0) json (~> 2.3) @@ -1032,7 +1032,7 @@ GEM ssrf_filter (1.1.2) staccato (0.5.3) statsd-instrument (3.9.7) - stringio (3.1.1) + stringio (3.1.2) strong_migrations (2.0.2) activerecord (>= 6.1) super_diff (0.13.0) @@ -1107,7 +1107,7 @@ GEM xmlmapper (0.8.1) nokogiri (~> 1.11) yard (0.9.37) - zeitwerk (2.6.18) + zeitwerk (2.7.1) PLATFORMS aarch64-linux From 13e4739a9c12d34bb59a925271d336a569f45520 Mon Sep 17 00:00:00 2001 From: Ryan McNeil Date: Mon, 25 Nov 2024 12:04:23 -0700 Subject: [PATCH 03/22] Bump prawn 2.4.0 -> 2.5.0 (#19474) * Bump prawn 2.4.0 -> 2.5.0 * add code to determine where warning is coming from * comment out warning code * remove extra lines * add pdf_fill pdf copy * Replace PdfFill test cases (and keep _old ones) * fix/cleanup codeowners * remove unused spec_helper method * replace Va21p527ez test case pdf * Delete "old" files --- .github/CODEOWNERS | 7 +------ Gemfile.lock | 17 ++++++++++++----- .../lib/pdf_fill/fixtures/overflow_extras.pdf | Bin 51296 -> 58445 bytes .../10-10CG/signed/overflow_extras.pdf | Bin 26744 -> 29738 bytes .../pdf_fill/21-0538/overflow_extras.pdf | Bin 15170 -> 17246 bytes .../pdf_fill/21-0781/overflow_extras.pdf | Bin 22728 -> 26575 bytes .../pdf_fill/21-0781a/overflow_extras.pdf | Bin 34696 -> 40314 bytes .../pdf_fill/21-4142/overflow_extras.pdf | Bin 21424 -> 24658 bytes .../pdf_fill/21-674/overflow_extras.pdf | Bin 20212 -> 24519 bytes .../pdf_fill/21-8940/overflow_extras.pdf | Bin 32450 -> 38293 bytes .../pdf_fill/21P-0969/overflow_extras.pdf | Bin 25973 -> 30950 bytes .../pdf_fill/21P-530V2/overflow_extras.pdf | Bin 12613 -> 13216 bytes .../pdf_fill/26-1880/overflow_extras.pdf | Bin 26812 -> 31655 bytes .../pdf_fill/28-1900/overflow_extras.pdf | Bin 16216 -> 19210 bytes .../pdf_fill/28-8832/overflow_extras.pdf | Bin 15513 -> 17955 bytes .../pdf_fill/5655/overflow_extras.pdf | Bin 17549 -> 20578 bytes .../pdf_fill/686C-674/overflow_extras.pdf | Bin 46108 -> 50545 bytes spec/fixtures/pdf_fill/extras.pdf | Bin 12088 -> 12543 bytes 18 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0d49491012a..230d4e56dc2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1315,21 +1315,16 @@ spec/fixtures/notice_of_disagreements/NOD_show_response_200.json @department-of- spec/fixtures/notice_of_disagreements/valid_NOD_create_request.json @department-of-veterans-affairs/backend-review-group spec/fixtures/okta @department-of-veterans-affairs/lighthouse-pivot spec/fixtures/okta/okta_callback_request_idme_1567760195.json @department-of-veterans-affairs/lighthouse-pivot +spec/fixtures/pdf_fill @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/10-10CG @department-of-veterans-affairs/vfs-10-10 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/21-0538 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/21-0781 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/21-4142 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/21-674 @department-of-veterans-affairs/benefits-dependents-management @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/21-8940 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/21P-0969 @department-of-veterans-affairs/pension-and-burials @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/21P-530 @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/21P-530V2 @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/26-1880 @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/28-1900 @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/28-8832 @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_fill/5655 @department-of-veterans-affairs/vsa-debt-resolution spec/fixtures/pdf_fill/686C-674 @department-of-veterans-affairs/benefits-dependents-management @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -spec/fixtures/pdf_fill/extras.pdf @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pdf_utilities @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/fixtures/pension @department-of-veterans-affairs/pension-and-burials @department-of-veterans-affairs/backend-review-group spec/fixtures/preneeds @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group diff --git a/Gemfile.lock b/Gemfile.lock index 66b709828f5..744ba729342 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -529,6 +529,11 @@ GEM google-protobuf (4.28.3) bigdecimal rake (>= 13) + google-protobuf (4.28.3-java) + bigdecimal + ffi (~> 1) + ffi-compiler (~> 1) + rake (>= 13) googleauth (1.11.2) faraday (>= 1.0, < 3.a) google-cloud-env (~> 2.1) @@ -736,7 +741,7 @@ GEM racc patience_diff (1.2.0) optimist (~> 3.0) - pdf-core (0.9.0) + pdf-core (0.10.0) pdf-forms (1.5.1) cliver (~> 0.3.2) rexml (~> 3.2, >= 3.2.6) @@ -756,9 +761,10 @@ GEM activerecord (>= 6.1) activesupport (>= 6.1) pkce_challenge (1.0.0) - prawn (2.4.0) - pdf-core (~> 0.9.0) - ttfunk (~> 1.7) + prawn (2.5.0) + matrix (~> 0.4) + pdf-core (~> 0.10.0) + ttfunk (~> 1.8) prawn-markup (1.0.0) nokogiri prawn @@ -1049,7 +1055,8 @@ GEM timecop (0.9.10) timeout (0.4.2) trailblazer-option (0.1.2) - ttfunk (1.7.0) + ttfunk (1.8.0) + bigdecimal (~> 3.1) typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) diff --git a/modules/pensions/spec/lib/pdf_fill/fixtures/overflow_extras.pdf b/modules/pensions/spec/lib/pdf_fill/fixtures/overflow_extras.pdf index dde5b73a43ee7a749db5fe0699fd72c060d75233..9f501c05006a9571384d42187203a873fdd5c4f9 100644 GIT binary patch literal 58445 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 S@7lD5l_?&P2S!lTz- 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 Y{bONOji5HvGv~R@UAqpsc&PdR19|>l;s5{u delta 20713 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 I)!&T^0H_-54FCWD diff --git a/spec/fixtures/pdf_fill/10-10CG/signed/overflow_extras.pdf b/spec/fixtures/pdf_fill/10-10CG/signed/overflow_extras.pdf index a256b92f496ab951dd108ddef4169d83539acf20..d7555730b9814004ac5ce4e548c34b061b0b51e0 100644 GIT binary patch literal 29738 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 t)yj|>-Tg-aqAuC(lq63FC&hn0nc zxR_(Y>k~6}AKCZjSG%sfc;zOl3my4>-)9G&z2NGbu23na;}q*qdf^Rgz3>G@yU+$J zIsqB?5P`XvM(3P@1%EL)4+_8*avyn|q|FP%Vm>dd*9q)?o>xCnf406}ze0bx{wDpe z^bhOP=K)j$CmzHYEfq?_Al?;+B7YVZ|6RD}F*zS3vfmG@XNOg#`i4IyK zaIt|JaDp&qanZ#>_~?Luw}Abk#ACNK{*elHgEx# z>(ixgl)r;3_nS?^4K(Ba2WiH}C-(mC;eFyOk3IgpDC~Gm-o1SX4ZPU+G9CNt9r6>e z3RI*8@~7V{IU>JDvm*>vCg~Wf8kr9yY|JkJ0T31zA6=jU&es}7uM8!!EkW48u^S_@ z0Y9i_aU$GTDvbuVHSQAn9H!awx8KS;X!VwD+pd#u6^2J3ZNJ{L|HIp^zw+W+MZmSR z%c#?XhAh7F%y60#UkMeYkLvs9k=Pns+MtFJ6~o|1*mdk;0o5iZl9bccpffPnT58&w zL0WqGYARhKzc6`fH+@5(@2(gA_|QIaAMIfDeMNrh?B`d1o!d?0`{doPQv4M$8vh`_ ztI~KoXv|n6ixeU9N7uU#gHdM+6{@(T6sDY8IomLTn-m?w6en538JtlW-^9f(L8_~S z*BfX7Gz+ZXaMN0ZC*=Ef)Azrj>6RQB z%#W6aicO&bdyyuDinAzQtmKF)EM>6(EUHk_BE>a9=q?k^{`NhZ_x4SnUbK7rE!W<@ znJ#&uR{rdxn`DTGKi_@xT{j6=PI~F)``_z$e)XlBFKDSgzyADfEuF8nKYQV&x2$<> zIq-rlOWKSPF=$db4xw%l2~=WYP7zrE-r=L9P4H zYA!iBtjlBZ&M8C_kBHV7SCjv-6l3#7PYi~Eq#O$pm;Ig`={_oVz3nj?i|-yS+xp-GTgA5k1N2oX0vJ+yf8)B}(82Rqpb~wYK;~)Gp$tC||W1lQ6lA3Oeuw@sJ&N%96KaLA)5i(0^FmyhXnGZ}bh>^`3aK zV2xNK0|kHNS>XU)H3g)2AyfJtAWZ{bCPNyxdTWrXz$yK)#mOZE>6*XF#$B@UZQ)hn zt)nfG_k;l=jF^;J{G{{HemdT3;qAvYsd0NOtA{1R)_WFVq>IklaJr5K@F)v1UdQrS z3TQwabL4HY|Ix$Zx3}H4QM!2RHEhS<6TiG6#xJiYRe+QIN#I--*UA2vUw*Qh*JCA^ zqvn}kzE#aLzx+lu&;0T?sd?s?zeCM4zx;32JoC%H2OUoH%V(&0=9h0&^8(4D%hkMy z@=Mgbg#2}Cp84f}spgqqez%%uetD|qnP0w_nrD7_i<)PC`AKS?`Q`6EF2B6`4OPXz zuB1^fc(+47<#$*A>yu|b`DyS;H^5Kb1mjd&oF6^bOP|Uo{a-Kq&*X(aQ9nHMq-k!m z6ZFHwzo+`)@e!qDKfL-m>8Kw*<-{`DejZnR?3bQZcc9zt|Nq<-?-`TI74O#E;+iXd zJY4bIA?~b$JKGJ{x0^eci>tz}cMIMIHZyKj4Ei+iCXVe++p&%(2bf(r{RF=Q{hkn$rhYHr(y_ zM}%gN%Ww9>#g2M@Jm*r+4m=Zpvm2jqVqZsQ-|zRc`*^}@hl@Ml?{;CYYC|9eB3S%J z{6|Ukk9F$unCs2mWoVG!GdFjaIqZl5V1Kb?@T@16IpKLvDD&V0^+{zOL<}U>!@m$q zDr5hmExw)u|9B&@Ux$PJ^Njd<_~#ssM40h0Cw!$Tp&lMigvIH=KQc(H=XbHF1oqcW z1E=3>2OGqf1st(uh^9k~5JExlZF(M4gErU)d8W0rAiz(_Pj5UAUvF0>M@?G?A0>Pp PGY~Ki9z5a9iN^m049KU3 literal 26744 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 S)e@lkAV^|%b}1!k;{OAWKC3tY diff --git a/spec/fixtures/pdf_fill/21-0538/overflow_extras.pdf b/spec/fixtures/pdf_fill/21-0538/overflow_extras.pdf index ed6fa5d36e11aa4f327c9335f72736673109e329..ca1d09137c2ddba2c4739b1866ff823de3e0a7d8 100644 GIT binary patch literal 17246 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 HGfn>urz{(i literal 15170 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 diff --git a/spec/fixtures/pdf_fill/21-0781/overflow_extras.pdf b/spec/fixtures/pdf_fill/21-0781/overflow_extras.pdf index 40abc72af583490ac8d51d8c567b47ee1dcdb231..e56355152977d3a864c0c18d74786924a8a9a343 100644 GIT binary patch literal 26575 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 diff --git a/spec/fixtures/pdf_fill/21-4142/overflow_extras.pdf b/spec/fixtures/pdf_fill/21-4142/overflow_extras.pdf index af2b09105743ab1efb1e0b1946e84efb4fe6764c..08553309372dd020772f75d9c80ff01447d377e2 100644 GIT binary patch literal 24658 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 literal 21424 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 literal 20212 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 diff --git a/spec/fixtures/pdf_fill/21-8940/overflow_extras.pdf b/spec/fixtures/pdf_fill/21-8940/overflow_extras.pdf index 26205865bb1522427b7f47fd279e641d49d709a7..16451c879f50af79b4c49508d705d8a697056ab6 100644 GIT binary patch literal 38293 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 diff --git a/spec/fixtures/pdf_fill/21P-0969/overflow_extras.pdf b/spec/fixtures/pdf_fill/21P-0969/overflow_extras.pdf index 3f8a7e2025a274284d7e0906c9db506e60561aff..3b32fd56ee4725f754edd86a29a09146f9879f85 100644 GIT binary patch literal 30950 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 RlGEn4+l~48WmgU|{vYNiDDeOQ literal 25973 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%0DB3? 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 literal 12613 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 SzIh+tBd{QVon2Z*2Jk=j=GQg= diff --git a/spec/fixtures/pdf_fill/26-1880/overflow_extras.pdf b/spec/fixtures/pdf_fill/26-1880/overflow_extras.pdf index bbb51be6390daf402bfdf39ee1c605927a03a42e..4a0b556295c2b07e14b89383e4a2c90b5f4da72d 100644 GIT binary patch literal 31655 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 U`+aIc5WqTPge)wQ@=}EV2Xr3(vH$=8 diff --git a/spec/fixtures/pdf_fill/28-1900/overflow_extras.pdf b/spec/fixtures/pdf_fill/28-1900/overflow_extras.pdf index 6573f728777cc2413fef68d2469649b317bde813..b95333ff6757eef7d88ce9e21df1d6f10e307f71 100644 GIT binary patch literal 19210 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 literal 16216 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 diff --git a/spec/fixtures/pdf_fill/28-8832/overflow_extras.pdf b/spec/fixtures/pdf_fill/28-8832/overflow_extras.pdf index 1347c6f7852d43fe7ad05eca1dd34209bd529890..eca6e60159109c8c997e251f0dcc538a9f5f674d 100644 GIT binary patch literal 17955 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 literal 15513 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 QK0`T|7)Ot;oIB0*nxBvhE literal 17549 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 diff --git a/spec/fixtures/pdf_fill/686C-674/overflow_extras.pdf b/spec/fixtures/pdf_fill/686C-674/overflow_extras.pdf index bb36f3f786270bdab728f540c9abd208d968763c..b50d9fc662aa8e4690cd808e1fc948a7094b3f97 100644 GIT binary patch literal 50545 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 z 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 UfoNPr-|cY&^{uY%+}36JUm~csIsgCw literal 12088 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 From 7f2678577d2b937daa8bea39f6f2def167d7585b Mon Sep 17 00:00:00 2001 From: Tyler Date: Mon, 25 Nov 2024 11:24:40 -0800 Subject: [PATCH 04/22] [API-42282] Improve error handling and logging for POA dependent assignment (#19541) * add poa id to logs * raise error if manage_ptcpnt_rlnshp fails * raise more meaningful exceptions * improve error handling re dependent claims * add more detail to bgs error --- ...pendent_claimant_poa_assignment_service.rb | 48 +++++++++++++------ .../poa_assign_dependent_claimant_job.rb | 4 +- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/modules/claims_api/app/services/claims_api/dependent_claimant_poa_assignment_service.rb b/modules/claims_api/app/services/claims_api/dependent_claimant_poa_assignment_service.rb index b2ec6e08637..8c7f9218fb7 100644 --- a/modules/claims_api/app/services/claims_api/dependent_claimant_poa_assignment_service.rb +++ b/modules/claims_api/app/services/claims_api/dependent_claimant_poa_assignment_service.rb @@ -9,6 +9,7 @@ module ClaimsApi class DependentClaimantPoaAssignmentService def initialize(**options) + @poa_id = options[:poa_id] @poa_code = options[:poa_code] @veteran_participant_id = options[:veteran_participant_id] @dependent_participant_id = options[:dependent_participant_id] @@ -25,7 +26,7 @@ def assign_poa_to_dependent! log(level: :error, detail: 'Failed to assign POA to dependent') - raise ::Common::Exceptions::FailedDependency + raise ::Common::Exceptions::ServiceError end private @@ -36,7 +37,8 @@ def person_web_service end def log(level: :info, **rest) - ClaimsApi::Logger.log('dependent_claimant_poa_assignment_service', level:, poa_code: @poa_code, **rest) + ClaimsApi::Logger.log('dependent_claimant_poa_assignment_service', level:, poa_id: @poa_id, poa_code: @poa_code, + **rest) end def assign_poa_to_dependent_via_manage_ptcpnt_rlnshp? @@ -51,19 +53,28 @@ def assign_poa_to_dependent_via_manage_ptcpnt_rlnshp? return true end - log(level: :warn, - detail: 'Something else went wrong with manage_ptcpnt_rlnshp. Falling back to update_benefit_claim.') - - false + raise ::Common::Exceptions::ServiceError rescue ::Common::Exceptions::ServiceError => e if e.errors.first.detail == 'PtcpntIdA has open claims.' log(detail: 'Dependent has open claims, continuing.') - else - log(level: :warn, - detail: 'Something else went wrong with manage_ptcpnt_rlnshp. Falling back to update_benefit_claim.') + + return false end - false + raise e + rescue => e + log(level: :error, detail: 'Something else went wrong with manage_ptcpnt_rlnshp.', error: error_details(e)) + + raise e + end + + def error_details(e) + { + message: e.message, + detail: e.try(:detail), + details: e.try(:details), + errors: e.try(:errors)&.map(&:to_h) + }.compact end def iso_to_date(iso_date) @@ -92,6 +103,12 @@ def assign_poa_to_dependent_via_update_benefit_claim? first_open_claim = dependent_claims.find do |claim| claim[:phase_type] != 'Complete' && claim[:ptcpnt_vet_id] == @veteran_participant_id end + if first_open_claim.nil? || first_open_claim.blank? + log(detail: 'Dependent has no open claims.', statuses: dependent_claims.pluck(:phase_type).uniq) + + raise ::Common::Exceptions::ServiceError + end + first_open_claim_details = claim_details(first_open_claim[:benefit_claim_id]) benefit_claim_update_input = build_benefit_claim_update_input(claim_details: first_open_claim_details) @@ -111,12 +128,13 @@ def dependent_claims local_bgs = ClaimsApi::LocalBGS.new(external_uid: @dependent_participant_id, external_key: @dependent_participant_id) res = local_bgs.find_benefit_claims_status_by_ptcpnt_id(@dependent_participant_id) + benefit_claims = Array.wrap(res&.dig(:benefit_claims_dto, :benefit_claim)) - return res&.dig(:benefit_claims_dto, :benefit_claim) if res&.dig(:benefit_claims_dto, :benefit_claim).present? + return benefit_claims if benefit_claims.present? && benefit_claims.is_a?(Array) && benefit_claims.first.present? log(level: :error, detail: 'Dependent claims not found in BGS') - raise ::Common::Exceptions::FailedDependency + raise ::Common::Exceptions::ResourceNotFound end def benefit_claim_web_service @@ -136,7 +154,7 @@ def claim_details(claim_id) log(level: :error, detail: 'Claim details not found in BGS', claim_id:) - raise ::Common::Exceptions::FailedDependency + raise ::Common::Exceptions::ResourceNotFound end def poa_participant_id @@ -146,7 +164,7 @@ def poa_participant_id log(level: :error, detail: 'POA code/participant ID combo not found in BGS') - raise ::Common::Exceptions::FailedDependency + raise ::Common::Exceptions::ResourceNotFound end def manage_ptcpnt_rlnshp_poa_success?(response) @@ -162,7 +180,7 @@ def benefit_claim_type(pgm_type_cd) else log(level: :error, detail: 'Program type code not recognized', pgm_type_cd:) - raise ::Common::Exceptions::FailedDependency + raise ::Common::Exceptions::BadRequest end end end diff --git a/modules/claims_api/app/sidekiq/claims_api/poa_assign_dependent_claimant_job.rb b/modules/claims_api/app/sidekiq/claims_api/poa_assign_dependent_claimant_job.rb index 410ca11c5ad..2cace86cb5f 100644 --- a/modules/claims_api/app/sidekiq/claims_api/poa_assign_dependent_claimant_job.rb +++ b/modules/claims_api/app/sidekiq/claims_api/poa_assign_dependent_claimant_job.rb @@ -8,6 +8,7 @@ def perform(poa_id) poa = ClaimsApi::PowerOfAttorney.find(poa_id) service = dependent_claimant_poa_assignment_service( + poa.id, poa.form_data, poa.auth_headers ) @@ -42,8 +43,9 @@ def handle_error(poa, e) raise e end - def dependent_claimant_poa_assignment_service(data, auth_headers) + def dependent_claimant_poa_assignment_service(poa_id, data, auth_headers) ClaimsApi::DependentClaimantPoaAssignmentService.new( + poa_id:, poa_code: find_poa_code(data), veteran_participant_id: auth_headers['va_eauth_pid'], dependent_participant_id: auth_headers.dig('dependent', 'participant_id'), From e100bdf3f0a349959179afea3f3039c5921bdbc9 Mon Sep 17 00:00:00 2001 From: Rebecca Tolmach <10993987+rmtolmach@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:42:14 -0500 Subject: [PATCH 05/22] bundle update factory_bot_rails (#19603) --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 744ba729342..56ff3e4abee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -425,10 +425,10 @@ GEM tzinfo ethon (0.16.0) ffi (>= 1.15.0) - factory_bot (6.4.5) + factory_bot (6.5.0) activesupport (>= 5.0.0) - factory_bot_rails (6.4.3) - factory_bot (~> 6.4) + factory_bot_rails (6.4.4) + factory_bot (~> 6.5) railties (>= 5.0.0) faker (3.5.1) i18n (>= 1.8.11, < 2) @@ -666,7 +666,7 @@ GEM mini_magick (4.13.2) mini_mime (1.1.5) mini_portile2 (2.8.8) - minitest (5.25.1) + minitest (5.25.2) mock_redis (0.46.0) msgpack (1.7.2) msgpack (1.7.2-java) @@ -796,7 +796,7 @@ GEM raabro (1.4.0) racc (1.8.1) racc (1.8.1-java) - rack (2.2.9) + rack (2.2.10) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (2.0.2) From bbe1eab693a11f5b4df5b7fc17ce5b9c5d1d8fd7 Mon Sep 17 00:00:00 2001 From: Jeff Marks <106996298+jefftmarks@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:48:31 -0700 Subject: [PATCH 06/22] EDM-372/sob dgib client and rake task (#19582) * create auth service * Update settings and create test keys * Update test settings * spec test for auth token service * Update codeowners * Linting * fix codeowners * Add url to settings * Client and config * Update breakers * Client and configuration * Update service name * Update client to use MEB claimant service * Remove call to meb * Build rake task to test connection * Fix comment * Fix linting --- config/initializers/breakers.rb | 2 ++ config/settings.yml | 3 ++ lib/post911_sob/dgib/client.rb | 42 +++++++++++++++++++++++++++ lib/post911_sob/dgib/configuration.rb | 40 +++++++++++++++++++++++++ rakelib/post911_sob.rake | 18 ++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 lib/post911_sob/dgib/client.rb create mode 100644 lib/post911_sob/dgib/configuration.rb create mode 100644 rakelib/post911_sob.rake diff --git a/config/initializers/breakers.rb b/config/initializers/breakers.rb index c9d4f1188f3..57da61650bd 100644 --- a/config/initializers/breakers.rb +++ b/config/initializers/breakers.rb @@ -21,6 +21,7 @@ require 'mhv_ac/configuration' require 'mpi/configuration' require 'pagerduty/configuration' +require 'post911_sob/dgib/configuration' require 'preneeds/configuration' require 'rx/configuration' require 'sm/configuration' @@ -62,6 +63,7 @@ HCA::Configuration.instance.breakers_service, MHVAC::Configuration.instance.breakers_service, MPI::Configuration.instance.breakers_service, + Post911SOB::DGIB::Configuration.instance.breakers_service, Preneeds::Configuration.instance.breakers_service, SM::Configuration.instance.breakers_service, VAProfile::AddressValidation::Configuration.instance.breakers_service, diff --git a/config/settings.yml b/config/settings.yml index 84b48ea9f97..ae6ac19c385 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1454,6 +1454,9 @@ dgi: jwt: public_key_path: spec/fixtures/post911_sob/dgib/public_test.pem private_key_path: spec/fixtures/post911_sob/dgib/private_test.pem + claimants: + url: ~ + mock: false # Settings for the VEText integration (mobile push notifications) vetext_push: diff --git a/lib/post911_sob/dgib/client.rb b/lib/post911_sob/dgib/client.rb new file mode 100644 index 00000000000..a9ed572f32a --- /dev/null +++ b/lib/post911_sob/dgib/client.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'common/client/base' +require 'post911_sob/dgib/configuration' +require 'post911_sob/dgib/authentication_token_service' + +module Post911SOB + module DGIB + class Client < Common::Client::Base + include Common::Client::Concerns::Monitoring + + configuration Post911SOB::DGIB::Configuration + + BENEFIT_TYPE = 'Chapter33' + + def initialize(claimant_id) + @claimant_id = claimant_id + + super() + end + + def get_entitlement_transferred_out + # TO-DO add monitoring and serialized response + # TO-DO Filter response by chapter33 benefit type + options = { timeout: 60 } + perform(:get, end_point, {}, request_headers, options) + end + + private + + def end_point + "transferees/#{@claimant_id}/toe" + end + + def request_headers + { + Authorization: "Bearer #{Post911SOB::DGIB::AuthenticationTokenService.call}" + } + end + end + end +end diff --git a/lib/post911_sob/dgib/configuration.rb b/lib/post911_sob/dgib/configuration.rb new file mode 100644 index 00000000000..640bcb8e263 --- /dev/null +++ b/lib/post911_sob/dgib/configuration.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require 'common/client/configuration/rest' + +module Post911SOB + module DGIB + class Configuration < Common::Client::Configuration::REST + SETTINGS = Settings.dgi.post911_sob.claimants + + # TO-DO: Datadog + + def base_path + SETTINGS.url.to_s + end + + def service_name + 'Post911SOB/DGIB' + end + + def connection + @conn ||= Faraday.new(base_path, headers: base_request_headers, request: request_options) do |faraday| + faraday.use :breakers + faraday.use Faraday::Response::RaiseError + faraday.request :json + + faraday.response :betamocks if mock_enabled? + faraday.response :snakecase, symbolize: false + faraday.response :json, content_type: /\bjson/ # ensures only json content types parsed + faraday.adapter Faraday.default_adapter + end + end + + private + + def mock_enabled? + SETTINGS.mock || false + end + end + end +end diff --git a/rakelib/post911_sob.rake b/rakelib/post911_sob.rake new file mode 100644 index 00000000000..853260892aa --- /dev/null +++ b/rakelib/post911_sob.rake @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'post911_sob/dgib/client' + +namespace :post911_sob do + namespace :dgib do + desc 'Test connection between vets-api and DGIB claimant-service' + task :connect, %i[claimant_id base_url] => :environment do |_cmd, args| + args.with_defaults(base_url: Settings.dgi.post911_sob.claimants.url) + + # Allow for base url to be overridden for testing purposes + Settings.dgi.post911_sob.claimants.url = args[:base_url] + + client = Post911SOB::DGIB::Client.new(args[:claimant_id]) + client.get_entitlement_transferred_out + end + end +end From 5cf671e9ef89e0839b7948f8f68f8d9b688c37af Mon Sep 17 00:00:00 2001 From: Brandon Cooper Date: Mon, 25 Nov 2024 15:23:57 -0500 Subject: [PATCH 07/22] Move auth_token_path to config settings instead of as a CONST on the mulesoft token client class (#19581) --- config/settings.yml | 1 + lib/carma/client/mule_soft_auth_token_client.rb | 7 +++++-- spec/lib/carma/client/mule_soft_auth_token_client_spec.rb | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/config/settings.yml b/config/settings.yml index ae6ac19c385..f90840cc4c4 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -174,6 +174,7 @@ form_10_10cg: token_url: ~ client_id: ~ client_secret: ~ + auth_token_path: ~ poa: s3: aws_access_key_id: my-aws-key-id diff --git a/lib/carma/client/mule_soft_auth_token_client.rb b/lib/carma/client/mule_soft_auth_token_client.rb index d881dc98a33..8314925ba9f 100644 --- a/lib/carma/client/mule_soft_auth_token_client.rb +++ b/lib/carma/client/mule_soft_auth_token_client.rb @@ -8,7 +8,6 @@ class MuleSoftAuthTokenClient < Common::Client::Base include Common::Client::Concerns::Monitoring STATSD_KEY_PREFIX = 'api.carma.mulesoft.auth' - AUTH_TOKEN_PATH = 'oauth2/ause1x1h6Zit9ziQL0j6/v1/token' GRANT_TYPE = 'client_credentials' SCOPE = 'DTCWriteResource' @@ -19,7 +18,7 @@ class GetAuthTokenError < StandardError; end def new_bearer_token with_monitoring do response = perform(:post, - AUTH_TOKEN_PATH, + auth_token_path, params, token_headers, { timeout: config.timeout }) @@ -55,6 +54,10 @@ def client_id def client_secret config.settings.client_secret end + + def auth_token_path + config.settings.auth_token_path + end end end end diff --git a/spec/lib/carma/client/mule_soft_auth_token_client_spec.rb b/spec/lib/carma/client/mule_soft_auth_token_client_spec.rb index 92038409cf7..a183eeffcff 100644 --- a/spec/lib/carma/client/mule_soft_auth_token_client_spec.rb +++ b/spec/lib/carma/client/mule_soft_auth_token_client_spec.rb @@ -13,6 +13,7 @@ token_url: 'my/token/url', client_id: 'id', client_secret: 'secret', + auth_token_path: 'auth/token/path', timeout: ) end @@ -57,7 +58,7 @@ expect(client).to receive(:perform) .with( :post, - CARMA::Client::MuleSoftAuthTokenClient::AUTH_TOKEN_PATH, + config.settings.auth_token_path, token_params, token_headers, options ) .and_return(mock_token_response) @@ -71,7 +72,7 @@ it 'raises error' do expect(client).to receive(:perform) - .with(:post, CARMA::Client::MuleSoftAuthTokenClient::AUTH_TOKEN_PATH, token_params, token_headers, options) + .with(:post, config.settings.auth_token_path, token_params, token_headers, options) .and_return(mock_error_token_response) expect do From a0d90926f19c08bd4f85c21ad6281243c48604e3 Mon Sep 17 00:00:00 2001 From: dfong-adh <151783381+dfong-adh@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:20:00 -0800 Subject: [PATCH 08/22] 97726: Add DR HLR V2 API endpoint (#19590) * 97726: Add DR HLR V2 API endpoint * Update CODEOWNERS --- .github/CODEOWNERS | 2 + .../v2/higher_level_reviews_controller.rb | 64 ++++++++ config/routes.rb | 4 + lib/decision_review_v1/service.rb | 6 +- spec/requests/v1/higher_level_reviews_spec.rb | 6 +- spec/requests/v2/higher_level_reviews_spec.rb | 150 ++++++++++++++++++ 6 files changed, 227 insertions(+), 5 deletions(-) create mode 100644 app/controllers/v2/higher_level_reviews_controller.rb create mode 100644 spec/requests/v2/higher_level_reviews_spec.rb diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 230d4e56dc2..cd75959d147 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -170,6 +170,7 @@ app/controllers/v1/sessions_controller.rb @department-of-veterans-affairs/octo- app/controllers/v1/supplemental_claims_controller.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group app/controllers/v1/supplemental_claims @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group app/controllers/v1/post911_gi_bill_statuses_controller.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/govcio-vfep-codereviewers +app/controllers/v2/higher_level_reviews_controller.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group app/mailers/application_mailer.rb @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/mailers/ch31_submissions_report_mailer.rb @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/mailers/create_daily_spool_files_mailer.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group @@ -1730,6 +1731,7 @@ spec/requests/v1/higher_level_reviews_spec.rb @department-of-veterans-affairs/b spec/requests/v1/notice_of_disagreements_spec.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/benefits-decision-reviews-be spec/requests/v1/post911_gi_bill_status_spec.rb @department-of-veterans-affairs/govcio-vfep-codereviewers @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/requests/v1/supplemental_claims_spec.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/benefits-decision-reviews-be +spec/requests/v2/higher_level_reviews_spec.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group spec/controllers/v1/decision_review_evidences_controller_spec.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group spec/requests/va_profile @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/routing/v0/map_services_routing_spec.rb @department-of-veterans-affairs/octo-identity diff --git a/app/controllers/v2/higher_level_reviews_controller.rb b/app/controllers/v2/higher_level_reviews_controller.rb new file mode 100644 index 00000000000..0ca4e5822c0 --- /dev/null +++ b/app/controllers/v2/higher_level_reviews_controller.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +require 'decision_review/utilities/saved_claim/service' + +module V2 + class HigherLevelReviewsController < AppealsBaseControllerV1 + include DecisionReview::SavedClaim::Service + service_tag 'higher-level-review' + + def show + render json: decision_review_service.get_higher_level_review(params[:id]).body + rescue => e + log_exception_to_personal_information_log( + e, error_class: error_class(method: 'show', exception_class: e.class), id: params[:id] + ) + raise + end + + def create + hlr_response_body = decision_review_service + .create_higher_level_review(request_body: request_body_hash, user: @current_user, + version: 'V2') + .body + submitted_appeal_uuid = hlr_response_body.dig('data', 'id') + ActiveRecord::Base.transaction do + AppealSubmission.create!(user_uuid: @current_user.uuid, user_account: @current_user.user_account, + type_of_appeal: 'HLR', submitted_appeal_uuid:) + + store_saved_claim(claim_class: SavedClaim::HigherLevelReview, form: request_body_hash.to_json, + guid: submitted_appeal_uuid) + + # Clear in-progress form since submit was successful + InProgressForm.form_for_user('20-0996', current_user)&.destroy! + end + render json: hlr_response_body + rescue => e + ::Rails.logger.error( + message: "Exception occurred while submitting Higher Level Review: #{e.message}", + backtrace: e.backtrace + ) + + handle_personal_info_error(e) + end + + private + + def error_class(method:, exception_class:) + "#{self.class.name}##{method} exception #{exception_class} (HLR_V2)" + end + + def handle_personal_info_error(e) + request = begin + { body: request_body_hash } + rescue + request_body_debug_data + end + + log_exception_to_personal_information_log( + e, error_class: error_class(method: 'create', exception_class: e.class), request: + ) + raise + end + end +end diff --git a/config/routes.rb b/config/routes.rb index 78dfdceecff..7cb82f645f6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -446,6 +446,10 @@ end end + namespace :v2, defaults: { format: 'json' } do + resources :higher_level_reviews, only: %i[create show] + end + root 'v0/example#index', module: 'v0' scope '/services' do diff --git a/lib/decision_review_v1/service.rb b/lib/decision_review_v1/service.rb index 30e313e6c64..caf070de305 100644 --- a/lib/decision_review_v1/service.rb +++ b/lib/decision_review_v1/service.rb @@ -34,11 +34,11 @@ class Service < Common::Client::Base # @param user [User] Veteran who the form is in regard to # @return [Faraday::Response] # - def create_higher_level_review(request_body:, user:) + def create_higher_level_review(request_body:, user:, version: 'V1') with_monitoring_and_error_handling do headers = create_higher_level_review_headers(user) common_log_params = { key: :overall_claim_submission, form_id: '996', user_uuid: user.uuid, - downstream_system: 'Lighthouse' } + downstream_system: 'Lighthouse', params: { version: } } begin response = perform :post, 'higher_level_reviews', request_body, headers log_formatted(**common_log_params.merge(is_success: true, status_code: response.status, body: '[Redacted]')) @@ -48,7 +48,7 @@ def create_higher_level_review(request_body:, user:) end raise_schema_error_unless_200_status response.status validate_against_schema json: response.body, schema: HLR_CREATE_RESPONSE_SCHEMA, - append_to_error_class: ' (HLR_V1)' + append_to_error_class: " (HLR_#{version}})" response end end diff --git a/spec/requests/v1/higher_level_reviews_spec.rb b/spec/requests/v1/higher_level_reviews_spec.rb index 38a151f3292..7122b71ae78 100644 --- a/spec/requests/v1/higher_level_reviews_spec.rb +++ b/spec/requests/v1/higher_level_reviews_spec.rb @@ -18,7 +18,8 @@ http: { status_code: 200, body: '[Redacted]' - } + }, + version: 'V1' } end let(:error_log_args) do @@ -33,7 +34,8 @@ http: { status_code: 422, body: response_error_body - } + }, + version: 'V1' } end diff --git a/spec/requests/v2/higher_level_reviews_spec.rb b/spec/requests/v2/higher_level_reviews_spec.rb new file mode 100644 index 00000000000..88c42b3a671 --- /dev/null +++ b/spec/requests/v2/higher_level_reviews_spec.rb @@ -0,0 +1,150 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'support/controller_spec_helper' + +RSpec.describe 'V2::HigherLevelReviews', type: :request do + let(:user) { build(:user, :loa3) } + let(:headers) { { 'CONTENT_TYPE' => 'application/json' } } + let(:success_log_args) do + { + message: 'Overall claim submission success!', + user_uuid: user.uuid, + action: 'Overall claim submission', + form_id: '996', + upstream_system: nil, + downstream_system: 'Lighthouse', + is_success: true, + http: { + status_code: 200, + body: '[Redacted]' + }, + version: 'V2' + } + end + let(:error_log_args) do + { + message: 'Overall claim submission failure!', + user_uuid: user.uuid, + action: 'Overall claim submission', + form_id: '996', + upstream_system: nil, + downstream_system: 'Lighthouse', + is_success: false, + http: { + status_code: 422, + body: response_error_body + }, + version: 'V2' + } + end + + let(:response_error_body) do + { + 'errors' => [{ 'title' => 'Missing required fields', + 'detail' => 'One or more expected fields were not found', + 'code' => '145', + 'source' => { 'pointer' => '/' }, + 'status' => '422', + 'meta' => { 'missing_fields' => %w[data included] } }] + } + end + + let(:extra_error_log_message) do + 'BackendServiceException: {:source=>"Common::Client::Errors::ClientError raised in DecisionReviewV1::Service", ' \ + ':code=>"DR_422"}' + end + + before { sign_in_as(user) } + + describe '#create' do + def personal_information_logs + PersonalInformationLog.where 'error_class like ?', 'V2::HigherLevelReviewsController#create exception % (HLR_V2)' + end + + subject do + post '/v2/higher_level_reviews', + params: VetsJsonSchema::EXAMPLES.fetch('HLR-CREATE-REQUEST-BODY_V1').to_json, + headers: + end + + it 'creates an HLR' do + VCR.use_cassette('decision_review/HLR-CREATE-RESPONSE-200_V1') do + # Create an InProgressForm + in_progress_form = create(:in_progress_form, user_uuid: user.uuid, form_id: '20-0996') + expect(in_progress_form).not_to be_nil + + allow(Rails.logger).to receive(:info) + expect(Rails.logger).to receive(:info).with(success_log_args) + allow(StatsD).to receive(:increment) + expect(StatsD).to receive(:increment).with('decision_review.form_996.overall_claim_submission.success') + + subject + expect(response).to be_successful + appeal_uuid = JSON.parse(response.body)['data']['id'] + expect(AppealSubmission.where(submitted_appeal_uuid: appeal_uuid).first).to be_truthy + # InProgressForm should be destroyed after successful submission + in_progress_form = InProgressForm.find_by(user_uuid: user.uuid, form_id: '20-0996') + expect(in_progress_form).to be_nil + # SavedClaim should be created with request data + saved_claim = SavedClaim::HigherLevelReview.find_by(guid: appeal_uuid) + expect(saved_claim.form).to eq(VetsJsonSchema::EXAMPLES.fetch('HLR-CREATE-REQUEST-BODY_V1').to_json) + end + end + + context 'when an error occurs with the api call' do + it 'adds to the PersonalInformationLog' do + VCR.use_cassette('decision_review/HLR-CREATE-RESPONSE-422_V1') do + expect(personal_information_logs.count).to be 0 + + allow(Rails.logger).to receive(:error) + expect(Rails.logger).to receive(:error).with(error_log_args) + expect(Rails.logger).to receive(:error).with( + message: "Exception occurred while submitting Higher Level Review: #{extra_error_log_message}", + backtrace: anything + ) + expect(Rails.logger).to receive(:error).with(extra_error_log_message, anything) + allow(StatsD).to receive(:increment) + expect(StatsD).to receive(:increment).with('decision_review.form_996.overall_claim_submission.failure') + + subject + expect(personal_information_logs.count).to be 1 + pil = personal_information_logs.first + %w[ + first_name last_name birls_id icn edipi mhv_correlation_id + participant_id vet360_id ssn assurance_level birth_date + ].each { |key| expect(pil.data['user'][key]).to be_truthy } + %w[message backtrace key response_values original_status original_body] + .each { |key| expect(pil.data['error'][key]).to be_truthy } + expect(pil.data['additional_data']['request']['body']).not_to be_empty + end + end + end + + context 'when an error occurs in the transaction' do + shared_examples 'rolledback transaction' do |model| + before do + allow_any_instance_of(model).to receive(:save!).and_raise(ActiveModel::Error) # stub a model error + end + + it 'rollsback transaction' do + VCR.use_cassette('decision_review/HLR-CREATE-RESPONSE-200_V1') do + expect(subject).to eq 500 + + # check that transaction rolled back / records were not persisted + expect(AppealSubmission.count).to eq 0 + expect(SavedClaim.count).to eq 0 + end + end + end + + context 'for AppealSubmission' do + it_behaves_like 'rolledback transaction', AppealSubmission + end + + context 'for SavedClaim' do + it_behaves_like 'rolledback transaction', SavedClaim + end + end + end +end From a8872e41611ad8a6f7d8f757fe4914d6784f3f1a Mon Sep 17 00:00:00 2001 From: dfong-adh <151783381+dfong-adh@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:20:21 -0800 Subject: [PATCH 09/22] 97028: Add error bucketing for DR job statuses (#19568) * 97028: Add error bucketing for DR job statuses * Update shared examples for spec --- .../saved_claim_status_updater_job.rb | 24 +++++++++++++++++-- ...shared_examples_for_status_updater_jobs.rb | 7 ++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/sidekiq/decision_review/saved_claim_status_updater_job.rb b/app/sidekiq/decision_review/saved_claim_status_updater_job.rb index 5f6d0545ee8..0e3b76c0b3a 100644 --- a/app/sidekiq/decision_review/saved_claim_status_updater_job.rb +++ b/app/sidekiq/decision_review/saved_claim_status_updater_job.rb @@ -225,8 +225,9 @@ def check_attachments_status(record, uploads_metadata) next if old_uploads_metadata.dig(upload_id, 'status') == status if status == ERROR_STATUS - Rails.logger.info("#{log_prefix} evidence status error", - { guid: record.guid, lighthouse_upload_id: upload_id, detail: upload['detail'] }) + error_type = get_error_type(upload['detail']) + params = { guid: record.guid, lighthouse_upload_id: upload_id, detail: upload['detail'], error_type: } + Rails.logger.info("#{log_prefix} evidence status error", params) tags = [service_tag, 'function: evidence submission to Lighthouse'] StatsD.increment('silent_failure', tags:) end @@ -247,5 +248,24 @@ def extract_uploads_metadata(metadata) JSON.parse(metadata).fetch('uploads', []).index_by { |upload| upload['id'] } end + + def get_error_type(detail) + case detail + when /.*Unidentified Mail: We could not associate part or all of this submission with a Vet*/i + 'unidentified-mail' + when /.*ERR-EMMS-FAILED, Corrupted File detected.*/i + 'corrupted-file' + when /.*ERR-EMMS-FAILED, Images failed to process.*/i + 'image-processing-failure' + when /.*Errors: Batch Submitted with all blank Images.*/i + 'blank-images' + when /.*Unsupported or Corrupted File type.*/i + 'unsupported-file-type' + when /.ERR-EMMS-FAILED, EffectiveReceivedDate cannot be in the future.*/i + 'effective-received-date-error' + else + 'unknown' + end + end end end diff --git a/spec/sidekiq/decision_review/shared_examples_for_status_updater_jobs.rb b/spec/sidekiq/decision_review/shared_examples_for_status_updater_jobs.rb index c34738e2341..aab4e011551 100644 --- a/spec/sidekiq/decision_review/shared_examples_for_status_updater_jobs.rb +++ b/spec/sidekiq/decision_review/shared_examples_for_status_updater_jobs.rb @@ -223,7 +223,8 @@ let(:upload_response_error) do response = JSON.parse(File.read('spec/fixtures/supplemental_claims/SC_upload_show_response_200.json')) response['data']['attributes']['status'] = 'error' - response['data']['attributes']['detail'] = 'Invalid PDF' + response['data']['attributes']['detail'] = + 'Upstream status: Errors: ERR-EMMS-FAILED, Corrupted File detected. EMMS-GCIO-0, ...' instance_double(Faraday::Response, body: response) end @@ -378,7 +379,9 @@ guid: anything, lighthouse_upload_id: upload_id, detail: anything) expect(Rails.logger).to have_received(:info) .with("#{log_prefix} evidence status error", - guid: guid2, lighthouse_upload_id: upload_id2, detail: 'Invalid PDF') + guid: guid2, lighthouse_upload_id: upload_id2, + detail: 'Upstream status: Errors: ERR-EMMS-FAILED, Corrupted File detected. EMMS-GCIO-0, ...', + error_type: 'corrupted-file') expect(StatsD).to have_received(:increment) .with('silent_failure', tags: [service_tag, 'function: evidence submission to Lighthouse']) From 923b714ce85e3ec134f576612b3f07e0d934ed09 Mon Sep 17 00:00:00 2001 From: mchristiansonVA <95487885+mchristiansonVA@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:11:04 -0500 Subject: [PATCH 10/22] Update entire payload units from GB to MB (#19609) --- modules/claims_api/app/swagger/claims_api/description/v1.md | 2 +- modules/claims_api/app/swagger/claims_api/v1/swagger.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/description/v1.md b/modules/claims_api/app/swagger/claims_api/description/v1.md index f193fa0cb96..ec3f0ec3201 100644 --- a/modules/claims_api/app/swagger/claims_api/description/v1.md +++ b/modules/claims_api/app/swagger/claims_api/description/v1.md @@ -34,7 +34,7 @@ This API accepts a payload of requests and responses on a per-form basis, with t ### Attachment and file size limits There is no limit on the number of files a payload can contain, but size limits do apply. - Uploaded documents cannot be larger than 11" x 11" - - The entire payload cannot exceed 100 GB + - The entire payload cannot exceed 100 MB - No single file in a payload can exceed 25 MB ### Authentication and authorization diff --git a/modules/claims_api/app/swagger/claims_api/v1/swagger.json b/modules/claims_api/app/swagger/claims_api/v1/swagger.json index 574ec7697da..7c1f6d0aceb 100644 --- a/modules/claims_api/app/swagger/claims_api/v1/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v1/swagger.json @@ -4,7 +4,7 @@ "title": "Benefits Claims", "version": "v1", "termsOfService": "https://developer.va.gov/terms-of-service", - "description": "This API automatically establishes and submits these VA forms.\n| Form number | Form name | Description |\n| :------------- | :----------: | -----------: |\n| [21-526EZ](https://www.va.gov/find-forms/about-form-21-526ez/) | Application for Disability Compensation and Related Compensation Benefits | Used to apply for VA disability compensation and related benefits. |\n| [21-0966](https://www.va.gov/find-forms/about-form-21-0966/) | Intent to File a Claim for Compensation and/or Pension, or Survivors Pension and/or DIC | Submits an intent to file to secure the earliest possible effective date for any retroactive payments. |\n| [21-22](https://www.va.gov/find-forms/about-form-21-22/) | Appointment of Veterans Service Organization as Claimant's Representative | Used to assign a Veterans Service Organization as a POA to help a Veteran or dependent with benefits or claims. |\n| [21-22a](https://www.va.gov/find-forms/about-form-21-22a/) | Appointment of Individual As Claimant's Representative | Used to assign an individual as a POA to help a Veteran with benefits or claims. |\n\nIt also lets claimants or their authorized representatives:\n - Digitally submit supporting documentation for disability compensation claims.\n - Retrieve information such as status for any claim, including pension and burial.\n - Retrieve power of attorney (POA) status for individuals and Veterans Service Organizations (VSOs).\n - Retrieve intent to file status.\n\n## Background\nThe Benefits Claims API offers faster establishment and enhanced reporting for several VA claims and forms. Using this API provides many benefits, such as:\n - Automatic claim and POA establishment\n - Direct establishment of disability compensation claims in Veterans Benefits Management System (VBMS) to avoid unnecessary manual processing and entry by Veteran Service Representatives (VSRs)\n - Faster claims processing by several days\n - End-to-end claims status and result tracking by claim ID\n\nForms not supported by the Benefits Claims API are submitted using the [Benefits Intake API](https://developer.va.gov/explore/benefits/docs/benefits?version=current), which places uploaded PDFs into the Centralized Mail Portal to be manually processed.\n\n## Appointing an accredited representative for dependents\nDependents of Veterans, such as spouses, children (biological and step), and parents (biological and foster) may be eligible for VA benefits and can request representation by an accredited representative.\n\nTo file claims through an accredited representative, dependents must appoint their own. Once appointed, the representative will have power of attorney (POA) to assist with the dependentʼs VA claims.\n\nBefore appointing a representative, the dependentʼs relationship to the Veteran must be established. If a new representative is being appointed, the dependentʼs relationship to the Veteran will be validated first. The representative will be appointed to the dependent, not the Veteran.\n\n## Technical Overview\nThis API accepts a payload of requests and responses on a per-form basis, with the payload identifying the form and Veteran. Trackable responses provide a unique ID which is used with the appropriate GET endpoint to track a submission’s processing status.\n\n### Attachment and file size limits\nThere is no limit on the number of files a payload can contain, but size limits do apply.\n - Uploaded documents cannot be larger than 11\" x 11\"\n - The entire payload cannot exceed 100 GB\n - No single file in a payload can exceed 25 MB\n\n### Authentication and authorization\nTo make an API request, follow our [authentication process](https://developer.va.gov/explore/api/benefits-claims/authorization-code) to receive an [OAuth token](https://oauth.net/2/).\n\n#### Representative authorization\nRepresentatives seeking authorization for a claimant must first [authenticate](https://developer.va.gov/explore/api/benefits-claims/authorization-code) and then pass the Veteran’s information in the right header:\n - SSN in X-VA-SSN\n - First name in X-VA-First-Name\n - Last name in X-VA-Last-Name\n - Date of birth in X-VA-Birth-Date\n\nOmitting the information will cause the API to treat the representative as the claimant.\n\n#### Veteran authorization\nVeterans seeking authorization do not need to include headers such as X-VA-First-Name since the token authentication via ID.me, MyHealtheVet, or DSLogon provides this information.\n\n### POA Codes\nVeteran representatives receive their organization’s POA code. If they are the assigned POA for a claimant, that claimant will have a matching POA code. When a claim is submitted, this API verifies that the representative and Veteran codes match against each other and the codes in the [Office of General Council (OGC) Database](https://www.va.gov/ogc/apps/accreditation/index.asp).\n\nUse the [Power of Attorney endpoint](#operations-Power_of_Attorney-post2122) to assign or update POA status. A newly appointed representative may not be able to submit forms for a Veteran until a day after their POA code is first associated with the OGC data set.\n\n### Test data for sandbox environment use\n[Test data](https://github.com/department-of-veterans-affairs/vets-api-clients/blob/master/test_accounts.md) is used for all forms in the sandbox environment and for 21-526 submissions in the staging environment.\n\n### Claim and form processing\nClaims and forms are first submitted by this API and then established in VBMS. A 200 response means only that your claim or form was submitted successfully. To see if your submission is processed or has reached VBMS, you must check its status using the appropriate GET endpoint and the ID returned with your submission response.\n\nA “claim established” status means the claim has reached VBMS. In sandbox, submissions can take over an hour to reach “claim established” status. In production, this may take over two days.\n" + "description": "This API automatically establishes and submits these VA forms.\n| Form number | Form name | Description |\n| :------------- | :----------: | -----------: |\n| [21-526EZ](https://www.va.gov/find-forms/about-form-21-526ez/) | Application for Disability Compensation and Related Compensation Benefits | Used to apply for VA disability compensation and related benefits. |\n| [21-0966](https://www.va.gov/find-forms/about-form-21-0966/) | Intent to File a Claim for Compensation and/or Pension, or Survivors Pension and/or DIC | Submits an intent to file to secure the earliest possible effective date for any retroactive payments. |\n| [21-22](https://www.va.gov/find-forms/about-form-21-22/) | Appointment of Veterans Service Organization as Claimant's Representative | Used to assign a Veterans Service Organization as a POA to help a Veteran or dependent with benefits or claims. |\n| [21-22a](https://www.va.gov/find-forms/about-form-21-22a/) | Appointment of Individual As Claimant's Representative | Used to assign an individual as a POA to help a Veteran with benefits or claims. |\n\nIt also lets claimants or their authorized representatives:\n - Digitally submit supporting documentation for disability compensation claims.\n - Retrieve information such as status for any claim, including pension and burial.\n - Retrieve power of attorney (POA) status for individuals and Veterans Service Organizations (VSOs).\n - Retrieve intent to file status.\n\n## Background\nThe Benefits Claims API offers faster establishment and enhanced reporting for several VA claims and forms. Using this API provides many benefits, such as:\n - Automatic claim and POA establishment\n - Direct establishment of disability compensation claims in Veterans Benefits Management System (VBMS) to avoid unnecessary manual processing and entry by Veteran Service Representatives (VSRs)\n - Faster claims processing by several days\n - End-to-end claims status and result tracking by claim ID\n\nForms not supported by the Benefits Claims API are submitted using the [Benefits Intake API](https://developer.va.gov/explore/benefits/docs/benefits?version=current), which places uploaded PDFs into the Centralized Mail Portal to be manually processed.\n\n## Appointing an accredited representative for dependents\nDependents of Veterans, such as spouses, children (biological and step), and parents (biological and foster) may be eligible for VA benefits and can request representation by an accredited representative.\n\nTo file claims through an accredited representative, dependents must appoint their own. Once appointed, the representative will have power of attorney (POA) to assist with the dependentʼs VA claims.\n\nBefore appointing a representative, the dependentʼs relationship to the Veteran must be established. If a new representative is being appointed, the dependentʼs relationship to the Veteran will be validated first. The representative will be appointed to the dependent, not the Veteran.\n\n## Technical Overview\nThis API accepts a payload of requests and responses on a per-form basis, with the payload identifying the form and Veteran. Trackable responses provide a unique ID which is used with the appropriate GET endpoint to track a submission’s processing status.\n\n### Attachment and file size limits\nThere is no limit on the number of files a payload can contain, but size limits do apply.\n - Uploaded documents cannot be larger than 11\" x 11\"\n - The entire payload cannot exceed 100 MB\n - No single file in a payload can exceed 25 MB\n\n### Authentication and authorization\nTo make an API request, follow our [authentication process](https://developer.va.gov/explore/api/benefits-claims/authorization-code) to receive an [OAuth token](https://oauth.net/2/).\n\n#### Representative authorization\nRepresentatives seeking authorization for a claimant must first [authenticate](https://developer.va.gov/explore/api/benefits-claims/authorization-code) and then pass the Veteran’s information in the right header:\n - SSN in X-VA-SSN\n - First name in X-VA-First-Name\n - Last name in X-VA-Last-Name\n - Date of birth in X-VA-Birth-Date\n\nOmitting the information will cause the API to treat the representative as the claimant.\n\n#### Veteran authorization\nVeterans seeking authorization do not need to include headers such as X-VA-First-Name since the token authentication via ID.me, MyHealtheVet, or DSLogon provides this information.\n\n### POA Codes\nVeteran representatives receive their organization’s POA code. If they are the assigned POA for a claimant, that claimant will have a matching POA code. When a claim is submitted, this API verifies that the representative and Veteran codes match against each other and the codes in the [Office of General Council (OGC) Database](https://www.va.gov/ogc/apps/accreditation/index.asp).\n\nUse the [Power of Attorney endpoint](#operations-Power_of_Attorney-post2122) to assign or update POA status. A newly appointed representative may not be able to submit forms for a Veteran until a day after their POA code is first associated with the OGC data set.\n\n### Test data for sandbox environment use\n[Test data](https://github.com/department-of-veterans-affairs/vets-api-clients/blob/master/test_accounts.md) is used for all forms in the sandbox environment and for 21-526 submissions in the staging environment.\n\n### Claim and form processing\nClaims and forms are first submitted by this API and then established in VBMS. A 200 response means only that your claim or form was submitted successfully. To see if your submission is processed or has reached VBMS, you must check its status using the appropriate GET endpoint and the ID returned with your submission response.\n\nA “claim established” status means the claim has reached VBMS. In sandbox, submissions can take over an hour to reach “claim established” status. In production, this may take over two days.\n" }, "tags": [ { From b1dc7e7e458caa2dc20006ccfb66adf6e479f797 Mon Sep 17 00:00:00 2001 From: mattwrightva <107576133+mattwrightva@users.noreply.github.com> Date: Mon, 25 Nov 2024 16:06:47 -0700 Subject: [PATCH 11/22] MHV-63086: Demographic endpoint complete (#19578) --- lib/medical_records/bb_internal/client.rb | 8 ++++ .../v1/medical_records/patient_controller.rb | 5 +++ modules/my_health/config/routes.rb | 4 +- .../bb_internal/client_spec.rb | 28 +++++++++++++ .../bb_internal/get_demographic_info.yml | 40 +++++++++++++++++++ 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 spec/support/vcr_cassettes/mr_client/bb_internal/get_demographic_info.yml diff --git a/lib/medical_records/bb_internal/client.rb b/lib/medical_records/bb_internal/client.rb index 012e9c37047..4c690806189 100644 --- a/lib/medical_records/bb_internal/client.rb +++ b/lib/medical_records/bb_internal/client.rb @@ -148,6 +148,14 @@ def get_patient patient end + # Retrieves the patient demographic information + # @return [Hash] A hash containing the patient's demographic information + # + def get_demographic_info + response = perform(:get, 'bluebutton/external/phrdemographic', nil, token_headers) + response.body + end + private ## diff --git a/modules/my_health/app/controllers/my_health/v1/medical_records/patient_controller.rb b/modules/my_health/app/controllers/my_health/v1/medical_records/patient_controller.rb index 847acc60c4e..bba6aceab7e 100644 --- a/modules/my_health/app/controllers/my_health/v1/medical_records/patient_controller.rb +++ b/modules/my_health/app/controllers/my_health/v1/medical_records/patient_controller.rb @@ -10,6 +10,11 @@ def index resource = bb_client.get_patient render json: resource.to_json end + + def demographic + resource = bb_client.get_demographic_info + render json: resource.to_json + end end end end diff --git a/modules/my_health/config/routes.rb b/modules/my_health/config/routes.rb index 7259dbdd934..fe2179251e5 100644 --- a/modules/my_health/config/routes.rb +++ b/modules/my_health/config/routes.rb @@ -27,7 +27,9 @@ get :status, on: :collection end resources :military_service, only: %i[index] - resources :patient, only: %i[index] + resources :patient, only: %i[index] do + get :demographic, on: :collection + end resources :imaging, only: %i[index], defaults: { format: :json } do get 'request', on: :member, action: :request_download get :status, on: :collection, action: :request_status diff --git a/spec/lib/medical_records/bb_internal/client_spec.rb b/spec/lib/medical_records/bb_internal/client_spec.rb index ecd8d0a9894..b9b80dbc8e1 100644 --- a/spec/lib/medical_records/bb_internal/client_spec.rb +++ b/spec/lib/medical_records/bb_internal/client_spec.rb @@ -199,4 +199,32 @@ end end end + + describe '#get_demographic_info' do + it 'retrieves the patient demographic information' do + VCR.use_cassette 'mr_client/bb_internal/get_demographic_info' do + demographic_info = client.get_demographic_info + + expect(demographic_info).to be_a(Hash) + expect(demographic_info).to have_key('content') + expect(demographic_info['content']).to be_an(Array) + expect(demographic_info['content']).not_to be_empty + + first_record = demographic_info['content'].first + expect(first_record).to be_a(Hash) + expect(first_record).to have_key('firstName') + expect(first_record['firstName']).to be_a(String) + expect(first_record).to have_key('lastName') + expect(first_record['lastName']).to be_a(String) + expect(first_record).to have_key('dateOfBirthString') + expect(first_record['dateOfBirthString']).to be_a(String) + expect(first_record).to have_key('gender') + expect(first_record['gender']).to be_a(String) + expect(first_record).to have_key('permCity') + expect(first_record['permCity']).to be_a(String) + expect(first_record).to have_key('permState') + expect(first_record['permState']).to be_a(String) + end + end + end end diff --git a/spec/support/vcr_cassettes/mr_client/bb_internal/get_demographic_info.yml b/spec/support/vcr_cassettes/mr_client/bb_internal/get_demographic_info.yml new file mode 100644 index 00000000000..62a21773e06 --- /dev/null +++ b/spec/support/vcr_cassettes/mr_client/bb_internal/get_demographic_info.yml @@ -0,0 +1,40 @@ +--- +http_interactions: +- request: + method: get + uri: "/mhvapi/v1/bluebutton/external/phrdemographic" + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - Vets.gov Agent + Token: "" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 200 + message: '' + headers: + Date: + - Tue, 19 Nov 2024 18:32:43 GMT + Content-Type: + - application/json + Content-Length: + - '1157' + Strict-Transport-Security: + - max-age=16000000; includeSubDomains; preload; + body: + encoding: UTF-8 + string: '{"content":[{"id":24773117,"patientId":21207669,"stationNumber":"984","facilityInfo":{"id":2572871,"name":"DAYTSHR","stationNumber":"984"},"dateOfBirthString":"1953 + Jan 03","firstName":"VETERAN","lastName":"CASEY","dateOfBirth":-536223600000,"age":71,"gender":"Male","religion":"UNIVERSAL + LIFE CHURCH","placeOfBirth":"ALDIE, VIRGINIA","maritalStatus":"MARRIED","permStreet1":"123 + TEST STREET","permStreet2":"TEST","permCity":"FAIRFAX","permState":"VIRGINIA","permZipcode":"20151","permCounty":"059","permCountry":"USA","permEmailAddress":"MARUF.AHMED@VA.GOV","serviceConnPercentage":"0","employmentStatus":"UNKNOWN","nextOfKinName":"GEORGE,TEST","nextOfKinStreet1":"123 + TEST STREET","nextOfKinStreet2":"TEST","nextOfKinCity":"FAIRFAX","nextOfKinState":"VIRGINIA","nextOfKinZipcode":"20151","nextOfKinHomePhone":"571-123-4567","type":"d"}],"pageable":{"pageNumber":0,"pageSize":2147483647,"sort":{"sorted":false,"empty":true,"unsorted":true},"offset":0,"paged":true,"unpaged":false},"last":true,"totalPages":1,"totalElements":1,"size":2147483647,"number":0,"sort":{"sorted":false,"empty":true,"unsorted":true},"first":true,"numberOfElements":1,"empty":false}' + recorded_at: Tue, 19 Nov 2024 18:32:42 GMT +recorded_with: VCR 6.3.1 From 2dcec652ec0dbf1bb6116222293f9420e4099589 Mon Sep 17 00:00:00 2001 From: Derek Fitchett <135860892+dfitchett@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:14:47 -0800 Subject: [PATCH 12/22] Fix typo. (#19612) --- app/models/concerns/form526_claim_fast_tracking_concern.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/form526_claim_fast_tracking_concern.rb b/app/models/concerns/form526_claim_fast_tracking_concern.rb index 777efb1b2a6..0f5c8b389bb 100644 --- a/app/models/concerns/form526_claim_fast_tracking_concern.rb +++ b/app/models/concerns/form526_claim_fast_tracking_concern.rb @@ -405,7 +405,7 @@ def conditionally_merge_ep end def log_flashes - if flashes.includes?('Amyotrophic Lateral Sclerosis') + if flashes.include?('Amyotrophic Lateral Sclerosis') Rails.logger.info('Flash Prototype Added', { submitted_claim_id:, flash: 'Amyotrophic Lateral Sclerosis' }) end rescue => e From 68ef67b38687050d00599d4bb184cd34ff403892 Mon Sep 17 00:00:00 2001 From: Rockwell Windsor Rice <129893414+rockwellwindsor-va@users.noreply.github.com> Date: Tue, 26 Nov 2024 07:32:08 -0600 Subject: [PATCH 13/22] API-41329-dependent-option-in-docs-dropdown (#19585) * API-41329-dependent-option-in-docs-dropdown * Adds dropdown request examples for veteran POA submission (self) and dependent POA submission * Compiles V1 Docs to include dropdown with altered request example modified: modules/claims_api/app/swagger/claims_api/v1/swagger.json modified: modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb * WIP * Copies over updates and removes line addition --- .../app/swagger/claims_api/v1/swagger.json | 46 +++++++++++++++---- .../spec/requests/v1/forms/rswag_2122_spec.rb | 45 +++++++++++++++++- 2 files changed, 82 insertions(+), 9 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v1/swagger.json b/modules/claims_api/app/swagger/claims_api/v1/swagger.json index 7c1f6d0aceb..6b24b8608f2 100644 --- a/modules/claims_api/app/swagger/claims_api/v1/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v1/swagger.json @@ -8904,14 +8904,6 @@ "required": [ "attributes" ], - "example": { - "type": "form/21-22", - "attributes": { - "serviceOrganization": { - "poaCode": "A1Q" - } - } - }, "properties": { "attributes": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -9324,6 +9316,44 @@ } } } + }, + "examples": { + "POA for Veteran": { + "value": { + "data": { + "type": "form/21-22", + "attributes": { + "serviceOrganization": { + "poaCode": "A1Q" + } + } + } + } + }, + "POA for Dependent Claimant": { + "value": { + "data": { + "type": "form/21-22", + "attributes": { + "serviceOrganization": { + "poaCode": "A1Q" + }, + "claimant": { + "firstName": "Mary", + "lastName": "Lincoln", + "address": { + "numberAndStreet": "123 anystreet", + "city": "anytown", + "state": "OR", + "country": "USA", + "zipFirstFive": "12345" + }, + "relationship": "Spouse" + } + } + } + } + } } } }, diff --git a/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb b/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb index 7693e33d6be..64874f85f08 100644 --- a/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb +++ b/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb @@ -90,7 +90,37 @@ let(:'X-VA-Birth-Date') { '1986-05-06T00:00:00+00:00' } let(:Authorization) { 'Bearer token' } - parameter SwaggerSharedComponents::V1.body_examples[:power_of_attorney] + claimant_data = { + 'firstName' => 'Mary', + 'lastName' => 'Lincoln', + 'address' => { + 'numberAndStreet' => '123 anystreet', + 'city' => 'anytown', + 'state' => 'OR', + 'country' => 'USA', + 'zipFirstFive' => '12345' + }, + 'relationship' => 'Spouse' + } + + request_template = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', + 'form_2122_json_api.json').read) + + request_template_with_dependent = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', + 'form_2122_json_api.json').read) + request_template_with_dependent['data']['attributes']['claimant'] = claimant_data + + parameter name: :power_of_attorney_request, in: :body, + schema: SwaggerSharedComponents::V1.body_examples[:power_of_attorney][:schema] + + parameter in: :body, examples: { + 'POA for Veteran' => { + value: request_template + }, + 'POA for Dependent Claimant' => { + value: request_template_with_dependent + } + } describe 'Getting a successful response' do response '200', '2122 Response' do @@ -104,6 +134,11 @@ temp end + + let(:power_of_attorney_request) do + data + end + let(:bgs_poa_verifier) { BGS::PowerOfAttorneyVerifier.new(nil) } before do |example| @@ -152,6 +187,10 @@ end let(:Authorization) { nil } + let(:power_of_attorney_request) do + data + end + before do |example| stub_poa_verification @@ -189,6 +228,10 @@ temp end + let(:power_of_attorney_request) do + data + end + before do |example| allow_any_instance_of(ClaimsApi::V1::Forms::PowerOfAttorneyController) .to receive(:check_request_ssn_matches_mpi).and_return(nil) From e98d225f956cd7579f8ac4a48ca0149a6a05d6a5 Mon Sep 17 00:00:00 2001 From: Rockwell Windsor Rice <129893414+rockwellwindsor-va@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:30:15 -0600 Subject: [PATCH 14/22] Api 42568 v2 dependent dropdown poa docs (#19606) * Removes old comment * API-42568-v2-depedent-dropdown-poa-docs * Adds drop down w/ claimant example for 2122 and 2122a endpoints modified: modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json modified: modules/claims_api/app/swagger/claims_api/v2/production/swagger.json modified: modules/claims_api/spec/requests/v2/veterans/rswag_power_of_attorney_spec.rb * Corrected json files for examples * Reverts Gemfile.lock change * Removes update to v1 swagger --- .../swagger/claims_api/v2/dev/swagger.json | 194 +++++++++++++++--- .../claims_api/v2/production/swagger.json | 194 +++++++++++++++--- .../veterans/rswag_power_of_attorney_spec.rb | 76 ++++++- 3 files changed, 397 insertions(+), 67 deletions(-) diff --git a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json index 450c9c57838..e215fbd69d0 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/dev/swagger.json @@ -4394,7 +4394,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "04fb02bc-0b7a-4594-a6d3-e426ac64f5d7", + "id": "94cf4190-cb60-462f-9f9f-18e96a98f679", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -4579,7 +4579,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-11" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -4625,7 +4625,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "7451466b-22d8-4c01-a449-7eed8dcef91b", + "id": "2afcf5be-3233-4f3d-b575-c163867c2538", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -4789,7 +4789,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2023-10-30", + "activeDutyEndDate": "2024-11-27", "separationLocationCode": "98282" } ], @@ -4810,7 +4810,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-31" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -8053,7 +8053,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2023-10-30", + "activeDutyEndDate": "2024-11-27", "separationLocationCode": "98282" } ], @@ -8074,7 +8074,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-31" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -9838,7 +9838,7 @@ "application/json": { "example": { "data": { - "id": "d884c174-2a35-4f18-8c5f-f3725226230e", + "id": "416efb54-617a-4ace-b396-a3f00a15b951", "type": "forms/526", "attributes": { "claimProcessType": "STANDARD_CLAIM_PROCESS", @@ -12645,13 +12645,7 @@ "submitterApplicationCode": "EBN", "submitterRoleCode": "VET", "supportingDocuments": [ - { - "documentId": "{54EF0C16-A9E7-4C3F-B876-B2C7BEC1F834}", - "documentTypeLabel": "Medical", - "originalFileName": null, - "trackedItemId": null, - "uploadDate": null - } + ], "tempJurisdiction": null, "trackedItems": [ @@ -13586,8 +13580,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2024-10-09", - "expirationDate": "2025-10-09", + "creationDate": "2024-11-25", + "expirationDate": "2025-11-25", "type": "compensation", "status": "active" } @@ -14384,7 +14378,7 @@ "status": "422", "detail": "Could not retrieve Power of Attorney due to multiple representatives with code: A1Q", "source": { - "pointer": "/modules/claims_api/app/controllers/claims_api/v2/veterans/power_of_attorney/base_controller.rb:162:in `representative'" + "pointer": "/modules/claims_api/app/controllers/claims_api/v2/veterans/power_of_attorney/base_controller.rb:165:in `representative'" } } ] @@ -14483,7 +14477,7 @@ "application/json": { "example": { "data": { - "id": "381df74a-b05c-456d-8fe6-aab246fda7f7", + "id": "0235eeb5-f965-4063-9379-72c177bdd474", "type": "individual", "attributes": { "code": "067", @@ -14877,7 +14871,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" } @@ -14971,7 +14965,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -15123,6 +15117,85 @@ } } } + }, + "examples": { + "POA for Veteran": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "representative": { + "poaCode": "067", + "registrationNumber": "999999999999", + "type": "ATTORNEY", + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + } + } + } + } + }, + "POA for Dependent Claimant": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "representative": { + "poaCode": "067", + "registrationNumber": "999999999999", + "type": "ATTORNEY", + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "claimant": { + "claimantId": "1013093331V548481", + "address": { + "addressLine1": "123 anystreet", + "city": "anytown", + "stateCode": "OR", + "country": "USA", + "zipCode": "12345" + }, + "relationship": "Spouse" + } + } + } + } + } } } }, @@ -15176,7 +15249,7 @@ "application/json": { "example": { "data": { - "id": "17df2ef1-3760-4bf3-82a9-4d804f7530bc", + "id": "ca3654c9-d900-4767-8e3e-2593b89ed609", "type": "organization", "attributes": { "code": "083", @@ -15553,7 +15626,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" }, @@ -15661,7 +15734,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -15699,7 +15772,7 @@ "email": { "description": "Email address of the service organization or representative.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran_representative@example.com" } @@ -15751,6 +15824,61 @@ } } } + }, + "examples": { + "POA for Veteran": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "city": "city", + "stateCode": "OR", + "country": "US", + "zipCode": "12345" + } + }, + "serviceOrganization": { + "poaCode": "083", + "registrationNumber": "999999999999" + } + } + } + } + }, + "POA for Dependent Claimant": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "city": "city", + "stateCode": "OR", + "country": "US", + "zipCode": "12345" + } + }, + "serviceOrganization": { + "poaCode": "083", + "registrationNumber": "999999999999" + }, + "claimant": { + "claimantId": "1013093331V548481", + "address": { + "addressLine1": "123 anystreet", + "city": "anytown", + "stateCode": "OR", + "country": "USA", + "zipCode": "12345" + }, + "relationship": "Spouse" + } + } + } + } + } } } }, @@ -16189,7 +16317,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" } @@ -16283,7 +16411,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -16856,7 +16984,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" }, @@ -16964,7 +17092,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -17002,7 +17130,7 @@ "email": { "description": "Email address of the service organization or representative.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran_representative@example.com" } @@ -17117,17 +17245,17 @@ "application/json": { "example": { "data": { - "id": "79a76ea1-feb7-4499-9fd9-b607ec137024", + "id": "f02c432d-5009-4744-be2b-fb6ace6014b5", "type": "claimsApiPowerOfAttorneys", "attributes": { - "dateRequestAccepted": "2024-10-09", + "dateRequestAccepted": "2024-11-25", "previousPoa": null, "representative": { "serviceOrganization": { "poaCode": "074" } }, - "status": "submitted" + "status": "pending" } } }, diff --git a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json index 804e4f007ea..62621ed02ad 100644 --- a/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json +++ b/modules/claims_api/app/swagger/claims_api/v2/production/swagger.json @@ -3685,7 +3685,7 @@ "202 without a transactionId": { "value": { "data": { - "id": "9b23d156-6ce0-4ad8-8ba2-78d2f65c422c", + "id": "46013bd2-69b1-44cd-a1eb-7ddd7bf5233c", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -3870,7 +3870,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-11" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -3916,7 +3916,7 @@ "202 with a transactionId": { "value": { "data": { - "id": "efa4c6af-6058-42ca-851d-48adcdf256b4", + "id": "912c63b9-38fd-4d2c-8452-287306417ba2", "type": "forms/526", "attributes": { "claimId": "600442191", @@ -4080,7 +4080,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2023-10-30", + "activeDutyEndDate": "2024-11-27", "separationLocationCode": "98282" } ], @@ -4101,7 +4101,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-31" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -7344,7 +7344,7 @@ "serviceBranch": "Public Health Service", "serviceComponent": "Active", "activeDutyBeginDate": "2008-11-14", - "activeDutyEndDate": "2023-10-30", + "activeDutyEndDate": "2024-11-27", "separationLocationCode": "98282" } ], @@ -7365,7 +7365,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-31" + "anticipatedSeparationDate": "2024-11-27" }, "confinements": [ { @@ -9129,7 +9129,7 @@ "application/json": { "example": { "data": { - "id": "655cf458-1833-409d-8ecc-d9327d8ccfde", + "id": "41dd6942-ee5b-4827-b0ea-fd0885cf68e4", "type": "forms/526", "attributes": { "claimProcessType": "STANDARD_CLAIM_PROCESS", @@ -11936,13 +11936,7 @@ "submitterApplicationCode": "EBN", "submitterRoleCode": "VET", "supportingDocuments": [ - { - "documentId": "{54EF0C16-A9E7-4C3F-B876-B2C7BEC1F834}", - "documentTypeLabel": "Medical", - "originalFileName": null, - "trackedItemId": null, - "uploadDate": null - } + ], "tempJurisdiction": null, "trackedItems": [ @@ -12877,8 +12871,8 @@ "id": "1", "type": "intent_to_file", "attributes": { - "creationDate": "2024-10-09", - "expirationDate": "2025-10-09", + "creationDate": "2024-11-25", + "expirationDate": "2025-11-25", "type": "compensation", "status": "active" } @@ -13675,7 +13669,7 @@ "status": "422", "detail": "Could not retrieve Power of Attorney due to multiple representatives with code: A1Q", "source": { - "pointer": "/modules/claims_api/app/controllers/claims_api/v2/veterans/power_of_attorney/base_controller.rb:162:in `representative'" + "pointer": "/modules/claims_api/app/controllers/claims_api/v2/veterans/power_of_attorney/base_controller.rb:165:in `representative'" } } ] @@ -13774,7 +13768,7 @@ "application/json": { "example": { "data": { - "id": "a886dcd1-79ac-4677-9bfe-07a6a55f1d93", + "id": "41bc5946-67df-47d2-b215-499d3c9e9d17", "type": "individual", "attributes": { "code": "067", @@ -14168,7 +14162,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" } @@ -14262,7 +14256,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -14414,6 +14408,85 @@ } } } + }, + "examples": { + "POA for Veteran": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "representative": { + "poaCode": "067", + "registrationNumber": "999999999999", + "type": "ATTORNEY", + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + } + } + } + } + }, + "POA for Dependent Claimant": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "representative": { + "poaCode": "067", + "registrationNumber": "999999999999", + "type": "ATTORNEY", + "address": { + "addressLine1": "123", + "addressLine2": "2a", + "city": "city", + "country": "US", + "stateCode": "OR", + "zipCode": "12345", + "zipCodeSuffix": "6789" + } + }, + "claimant": { + "claimantId": "1013093331V548481", + "address": { + "addressLine1": "123 anystreet", + "city": "anytown", + "stateCode": "OR", + "country": "USA", + "zipCode": "12345" + }, + "relationship": "Spouse" + } + } + } + } + } } } }, @@ -14467,7 +14540,7 @@ "application/json": { "example": { "data": { - "id": "ef66475e-4358-4f79-8280-d013e4767951", + "id": "3cf2d554-3940-4560-8002-0b6fae588751", "type": "organization", "attributes": { "code": "083", @@ -14844,7 +14917,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" }, @@ -14952,7 +15025,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -14990,7 +15063,7 @@ "email": { "description": "Email address of the service organization or representative.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran_representative@example.com" } @@ -15042,6 +15115,61 @@ } } } + }, + "examples": { + "POA for Veteran": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "city": "city", + "stateCode": "OR", + "country": "US", + "zipCode": "12345" + } + }, + "serviceOrganization": { + "poaCode": "083", + "registrationNumber": "999999999999" + } + } + } + } + }, + "POA for Dependent Claimant": { + "value": { + "data": { + "attributes": { + "veteran": { + "address": { + "addressLine1": "123", + "city": "city", + "stateCode": "OR", + "country": "US", + "zipCode": "12345" + } + }, + "serviceOrganization": { + "poaCode": "083", + "registrationNumber": "999999999999" + }, + "claimant": { + "claimantId": "1013093331V548481", + "address": { + "addressLine1": "123 anystreet", + "city": "anytown", + "stateCode": "OR", + "country": "USA", + "zipCode": "12345" + }, + "relationship": "Spouse" + } + } + } + } + } } } }, @@ -15480,7 +15608,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" } @@ -15574,7 +15702,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -16147,7 +16275,7 @@ "email": { "description": "Email address of the veteran.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran@example.com" }, @@ -16255,7 +16383,7 @@ "email": { "description": "Email address of the claimant.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "claimant@example.com" }, @@ -16293,7 +16421,7 @@ "email": { "description": "Email address of the service organization or representative.", "type": "string", - "pattern": ".@.", + "pattern": "^(?!.*\\s).+@.+\\..+|^$", "maxLength": 61, "example": "veteran_representative@example.com" } @@ -16408,17 +16536,17 @@ "application/json": { "example": { "data": { - "id": "b791fbfe-9f11-4e61-850f-700c352c2663", + "id": "1d02f5ef-4f02-4a84-bffd-3a572697b5bd", "type": "claimsApiPowerOfAttorneys", "attributes": { - "dateRequestAccepted": "2024-10-09", + "dateRequestAccepted": "2024-11-25", "previousPoa": null, "representative": { "serviceOrganization": { "poaCode": "074" } }, - "status": "submitted" + "status": "pending" } } }, diff --git a/modules/claims_api/spec/requests/v2/veterans/rswag_power_of_attorney_spec.rb b/modules/claims_api/spec/requests/v2/veterans/rswag_power_of_attorney_spec.rb index 005d9399d3b..8fee9a56d26 100644 --- a/modules/claims_api/spec/requests/v2/veterans/rswag_power_of_attorney_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/rswag_power_of_attorney_spec.rb @@ -7,7 +7,6 @@ require_relative '../../../support/swagger_shared_components/v2' require 'bgs_service/local_bgs' -# doc generation for V2 ITFs temporarily disabled by API-13879 describe 'PowerOfAttorney', openapi_spec: Rswag::TextHelpers.new.claims_api_docs do let(:local_bgs) { ClaimsApi::LocalBGS } @@ -212,6 +211,39 @@ let(:poa_code) { '067' } let(:bgs_poa) { { person_org_name: "#{poa_code} name-here" } } + claimant_data = { + 'claimantId' => '1013093331V548481', + 'address' => { + 'addressLine1' => '123 anystreet', + 'city' => 'anytown', + 'stateCode' => 'OR', + 'country' => 'USA', + 'zipCode' => '12345' + }, + 'relationship' => 'Spouse' + } + + request_template = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122a', 'valid.json').read) + + request_template_with_dependent = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', + 'veterans', 'power_of_attorney', '2122a', + 'valid.json').read) + + request_template_with_dependent['data']['attributes']['claimant'] = claimant_data + + parameter name: :power_of_attorney_request, in: :body, + schema: SwaggerSharedComponents::V2.body_examples[:power_of_attorney_2122a][:schema] + + parameter in: :body, examples: { + 'POA for Veteran' => { + value: request_template + }, + 'POA for Dependent Claimant' => { + value: request_template_with_dependent + } + } + describe 'Getting a successful response' do response '202', 'Valid request response' do schema JSON.parse(Rails.root.join('spec', 'support', 'schemas', 'claims_api', 'v2', 'veterans', @@ -224,6 +256,10 @@ temp end + let(:power_of_attorney_request) do + data + end + before do |example| expect_any_instance_of(local_bgs).to receive(:find_poa_by_participant_id).and_return(bgs_poa) allow_any_instance_of(local_bgs).to receive(:find_poa_history_by_ptcpnt_id) @@ -388,6 +424,40 @@ let(:scopes) { %w[system/claim.write] } let(:organization_poa_code) { '083' } let(:bgs_poa) { { person_org_name: "#{organization_poa_code} name-here" } } + + claimant_data = { + 'claimantId' => '1013093331V548481', + 'address' => { + 'addressLine1' => '123 anystreet', + 'city' => 'anytown', + 'stateCode' => 'OR', + 'country' => 'USA', + 'zipCode' => '12345' + }, + 'relationship' => 'Spouse' + } + + request_template = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', + 'power_of_attorney', '2122', 'valid.json').read) + + request_template_with_dependent = JSON.parse(Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', + 'veterans', 'power_of_attorney', '2122', + 'valid.json').read) + + request_template_with_dependent['data']['attributes']['claimant'] = claimant_data + + parameter name: :power_of_attorney_request, in: :body, + schema: SwaggerSharedComponents::V2.body_examples[:power_of_attorney_2122a][:schema] + + parameter in: :body, examples: { + 'POA for Veteran' => { + value: request_template + }, + 'POA for Dependent Claimant' => { + value: request_template_with_dependent + } + } + let(:data) do temp = Rails.root.join('modules', 'claims_api', 'spec', 'fixtures', 'v2', 'veterans', 'power_of_attorney', '2122', 'valid.json').read @@ -414,6 +484,10 @@ end end + let(:power_of_attorney_request) do + data + end + after do |example| example.metadata[:response][:content] = { 'application/json' => { From 131e4762b65e9de035914495d97ec0c164591478 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:41:50 -0500 Subject: [PATCH 15/22] Bump flipper-active_record from 1.3.1 to 1.3.2 (#19615) Bumps [flipper-active_record](https://github.com/flippercloud/flipper) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/flippercloud/flipper/releases) - [Changelog](https://github.com/flippercloud/flipper/blob/main/Changelog.md) - [Commits](https://github.com/flippercloud/flipper/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: flipper-active_record dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 56ff3e4abee..0ff0f7d6eb8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -475,11 +475,11 @@ GEM nokogiri (>= 1.11.4) fitbit_api (1.0.0) oauth2 (~> 2.0) - flipper (1.3.1) + flipper (1.3.2) concurrent-ruby (< 2) - flipper-active_record (1.3.1) - activerecord (>= 4.2, < 8) - flipper (~> 1.3.1) + flipper-active_record (1.3.2) + activerecord (>= 4.2, < 9) + flipper (~> 1.3.2) flipper-active_support_cache_store (1.3.1) activesupport (>= 4.2, < 8) flipper (~> 1.3.1) From e4c76868770087fee5d899271ea828b273968079 Mon Sep 17 00:00:00 2001 From: Rebecca Tolmach <10993987+rmtolmach@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:45:13 -0500 Subject: [PATCH 16/22] restrict running to PRs on master (#19617) --- .github/workflows/be_review_prs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/be_review_prs.yml b/.github/workflows/be_review_prs.yml index 52c3a274ef0..54f6c0fc402 100644 --- a/.github/workflows/be_review_prs.yml +++ b/.github/workflows/be_review_prs.yml @@ -2,6 +2,8 @@ name: Require backend-review-group approval on: pull_request_review: types: [submitted] + branches: + - master jobs: check-approval-requirements: From b8d6bc7c1afe967b027601442929fdcb66f7838d Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:02:46 -0700 Subject: [PATCH 17/22] API-replace-bgs-ext-flash-updater (#19202) * Adds flipper feature in config. Adds if statement in flash_updater for flipper. Adds claimantWebService * Adds claimant service. Adds flipper optinion in flash updater. Adds test. * Adds add_flash using local_bgs. Adds defined param flash to flash_updater. Adds check if response.status is not successful, then fo to the soap_error_handler. * Adds test for add_flash in local_bgs. * Reverts mistaken update. * Linting * changes params for bgs add_flash basedon flipper. * Adds cassette to flash_updater spec. Fixes mapper tests based on date change in fixture. * Adds definition of flash methods to local bgs definitions file. * Removes cassette. Makes xml methods consistent. * Aligns claimantService with modules in definition file. * Removes duplicate service. * Corrects definitions file. * Removes duplicate bean module. * Addresses failing tests. * Adds findPOAByPtcpntId to ClaimantService * Updates claimantWebServie definition. Removes method definitons. Renames claimant_web_service file. Updates require statement in flash_updater. * Adjusts tests to changes/refactor of definitions file. * Removes tests for claimant web servce definition. --- config/features.yml | 4 ++ .../claims_api/bgs_client/definitions.rb | 17 -------- .../app/sidekiq/claims_api/flash_updater.rb | 29 +++++++++++-- .../lib/bgs_service/claimant_web_service.rb | 29 +++++++++++++ .../claims_api/lib/bgs_service/local_bgs.rb | 2 +- .../form_526_json_api.json | 2 +- .../lib/claims_api/find_definition_spec.rb | 28 ------------- .../claims_api/local_bgs_refactored_spec.rb | 41 ------------------- .../spec/lib/claims_api/local_bgs_spec.rb | 2 +- ...isability_compensation_evss_mapper_spec.rb | 2 +- ...disability_compensation_pdf_mapper_spec.rb | 2 +- .../spec/sidekiq/flash_updater_spec.rb | 22 +++++----- 12 files changed, 75 insertions(+), 105 deletions(-) create mode 100644 modules/claims_api/lib/bgs_service/claimant_web_service.rb diff --git a/config/features.yml b/config/features.yml index fdeee335e78..fda615484b7 100644 --- a/config/features.yml +++ b/config/features.yml @@ -220,6 +220,10 @@ features: actor_type: user description: Enables users to access the claim letters page enable_in_development: true + claims_api_flash_updater_uses_local_bgs: + actor_type: user + description: Enables flash updater to use local_bgs + enable_in_development: true claims_api_local_bgs_refactor: actor_type: user description: Diverts codepath to LocalBGSRefactored diff --git a/modules/claims_api/app/clients/claims_api/bgs_client/definitions.rb b/modules/claims_api/app/clients/claims_api/bgs_client/definitions.rb index 72c488e7156..f9ba0fa3134 100644 --- a/modules/claims_api/app/clients/claims_api/bgs_client/definitions.rb +++ b/modules/claims_api/app/clients/claims_api/bgs_client/definitions.rb @@ -61,23 +61,6 @@ module ClaimantServiceBean ) end - module ClaimantWebService - DEFINITION = - Service.new( - bean: ClaimantServiceBean::DEFINITION, - path: 'ClaimantWebService' - ) - - module FindPoaByParticipantId - DEFINITION = - Action.new( - service: ClaimantWebService::DEFINITION, - name: 'findPOAByPtcpntId', - key: 'return' - ) - end - end - ## # EBenefitsBnftClaimStatusWebServiceBean # diff --git a/modules/claims_api/app/sidekiq/claims_api/flash_updater.rb b/modules/claims_api/app/sidekiq/claims_api/flash_updater.rb index ff80fb4effa..016445bcbf8 100644 --- a/modules/claims_api/app/sidekiq/claims_api/flash_updater.rb +++ b/modules/claims_api/app/sidekiq/claims_api/flash_updater.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true +require 'bgs_service/claimant_web_service' module ClaimsApi class FlashUpdater < UpdaterService def perform(flashes, auto_claim_id) user = bgs_headers(auto_claim_id) - service = bgs_service(user).claimant flashes.each do |flash_name| # NOTE: Assumption that duplicate flashes are ignored when submitted - service.add_flash(file_number: user['ssn'], flash_name:) + add_flash(user, flash_name) rescue BGS::ShareError, BGS::PublicError => e persist_exception(e, auto_claim_id:) end - assigned_flashes = service.find_assigned_flashes(user['ssn'])[:flashes] + assigned_flashes = bgs_service(user).find_assigned_flashes(user['ssn'])[:flashes] flashes.each do |flash_name| assigned_flash = assigned_flashes.find { |af| af[:flash_name].strip == flash_name } if assigned_flash.blank? @@ -33,7 +33,30 @@ def persist_exception(e, auto_claim_id: nil, message: { key: e.code, text: e.mes log_exception_to_sentry(e) end + def add_flash(user, flash_name) + if Flipper.enabled? :claims_api_flash_updater_uses_local_bgs + bgs_service(user).add_flash(file_number: user['ssn'], flash: { flash_name: }) + else + bgs_service(user).add_flash(file_number: user['ssn'], flash_name:) + end + end + def bgs_service(user) + if Flipper.enabled? :claims_api_flash_updater_uses_local_bgs + claimant_service(user) + else + bgs_ext_service(user).claimant + end + end + + def claimant_service(user) + ClaimsApi::ClaimantWebService.new( + external_uid: user['ssn'], + external_key: user['ssn'] + ) + end + + def bgs_ext_service(user) BGS::Services.new( external_uid: user['ssn'], external_key: user['ssn'] diff --git a/modules/claims_api/lib/bgs_service/claimant_web_service.rb b/modules/claims_api/lib/bgs_service/claimant_web_service.rb new file mode 100644 index 00000000000..5441e354cab --- /dev/null +++ b/modules/claims_api/lib/bgs_service/claimant_web_service.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module ClaimsApi + class ClaimantWebService < ClaimsApi::LocalBGS + def bean_name + 'ClaimantServiceBean/ClaimantWebService' + end + + def find_assigned_flashes(file_number) + body = Nokogiri::XML::DocumentFragment.parse <<~EOXML + #{file_number} + EOXML + make_request(endpoint: bean_name, action: 'findAssignedFlashes', body:, key: 'return') + end + + def add_flash(file_number:, flash: {}) + body = Nokogiri::XML::DocumentFragment.parse <<~EOXML + #{file_number} + + #{flash[:assigned_indicator]} + #{flash[:flash_name]} + #{flash[:flash_type]} + + EOXML + response = make_request(endpoint: bean_name, action: 'addFlash', body:) + response&.dig(:body, :add_flash_response) || response + end + end +end diff --git a/modules/claims_api/lib/bgs_service/local_bgs.rb b/modules/claims_api/lib/bgs_service/local_bgs.rb index c3995179880..7e466e46629 100644 --- a/modules/claims_api/lib/bgs_service/local_bgs.rb +++ b/modules/claims_api/lib/bgs_service/local_bgs.rb @@ -305,7 +305,7 @@ def make_request(endpoint:, action:, body:, key: nil, namespaces: {}, transform_ detail: "local BGS Faraday Timeout: #{e.message}") raise ::Common::Exceptions::BadGateway end - soap_error_handler.handle_errors(response) if response + soap_error_handler.handle_errors(response) if response.status != 200 log_duration(event: 'parsed_response', key:) do parsed_response = parse_response(response, action:, key:) diff --git a/modules/claims_api/spec/fixtures/v2/veterans/disability_compensation/form_526_json_api.json b/modules/claims_api/spec/fixtures/v2/veterans/disability_compensation/form_526_json_api.json index c89c755da26..4da1121da8f 100644 --- a/modules/claims_api/spec/fixtures/v2/veterans/disability_compensation/form_526_json_api.json +++ b/modules/claims_api/spec/fixtures/v2/veterans/disability_compensation/form_526_json_api.json @@ -177,7 +177,7 @@ }, "federalActivation": { "activationDate": "2023-10-01", - "anticipatedSeparationDate": "2024-10-31" + "anticipatedSeparationDate": "2025-10-31" }, "confinements": [ { diff --git a/modules/claims_api/spec/lib/claims_api/find_definition_spec.rb b/modules/claims_api/spec/lib/claims_api/find_definition_spec.rb index a94782aacd8..0e5f947273a 100644 --- a/modules/claims_api/spec/lib/claims_api/find_definition_spec.rb +++ b/modules/claims_api/spec/lib/claims_api/find_definition_spec.rb @@ -16,21 +16,6 @@ Flipper.enable(:lighthouse_claims_api_hardcode_wsdl) end - context 'ClaimantServiceBean' do - let(:endpoint) { 'ClaimantServiceBean/ClaimantWebService' } - let(:action) { 'findPOAByPtcpntId' } - let(:key) { 'return' } - - it 'response with the correct attributes for ClaimantServiceBean' do - result = subject.for_action(endpoint, action) - parsed_result = JSON.parse(result.to_json) - - expect(parsed_result['service']['bean']['path']).to eq 'ClaimantServiceBean' - expect(parsed_result['service']['path']).to eq 'ClaimantWebService' - expect(parsed_result['service']['bean']['namespaces']['target']).to eq 'http://services.share.benefits.vba.va.gov/' - end - end - context 'EBenefitsBnftClaimStatusWebServiceBean' do let(:endpoint) { 'EBenefitsBnftClaimStatusWebServiceBean/EBenefitsBnftClaimStatusWebService' } let(:action) { 'findBenefitClaimsStatusByPtcpntId' } @@ -84,7 +69,6 @@ parsed_result = JSON.parse(result.to_json) expect(parsed_result['service']['bean']['path']).to eq 'PersonWebServiceBean' - expect(parsed_result['service']['path']).to eq 'PersonWebService' expect(parsed_result['service']['bean']['namespaces']['target']).to eq 'http://person.services.vetsnet.vba.va.gov/' end end @@ -238,18 +222,6 @@ Flipper.enable(:lighthouse_claims_api_hardcode_wsdl) end - context 'ClaimantWebService' do - let(:endpoint) { 'ClaimantServiceBean/ClaimantWebService' } - - it 'response with the correct namespace' do - result = subject.for_service(endpoint) - parsed_result = JSON.parse(result.to_json) - expect(parsed_result['bean']['path']).to eq 'ClaimantServiceBean' - expect(parsed_result['path']).to eq 'ClaimantWebService' - expect(parsed_result['bean']['namespaces']['target']).to eq 'http://services.share.benefits.vba.va.gov/' - end - end - context 'EBenefitsBnftClaimStatusWebServiceBean' do let(:endpoint) { 'EBenefitsBnftClaimStatusWebServiceBean/EBenefitsBnftClaimStatusWebService' } diff --git a/modules/claims_api/spec/lib/claims_api/local_bgs_refactored_spec.rb b/modules/claims_api/spec/lib/claims_api/local_bgs_refactored_spec.rb index 874fd6ea80f..c0de490514e 100644 --- a/modules/claims_api/spec/lib/claims_api/local_bgs_refactored_spec.rb +++ b/modules/claims_api/spec/lib/claims_api/local_bgs_refactored_spec.rb @@ -16,47 +16,6 @@ let(:soap_error_handler) { ClaimsApi::LocalBGSRefactored::ErrorHandler } - describe '#find_poa_by_participant_id' do - it 'responds as expected, with extra ClaimsApi::Logger logging' do - VCR.use_cassette('claims_api/bgs/claimant_web_service/find_poa_by_participant_id') do - # Events logged: - # 1: built_request - how long to build the request - # 2: connection_post - how long does the post itself take for the request cycle - # 3: parsed_response - how long to parse the response - # 4: transformed_response - how long to transform the response - expect(ClaimsApi::Logger).to receive(:log).exactly(4).times - result = subject.find_poa_by_participant_id('does-not-matter') - expect(result).to be_a Hash - expect(result[:begin_date]).to eq '09/03/2024' - end - end - - describe 'breakers' do - it 'returns a Bad Gateway' do - stub_request(:any, "#{Settings.bgs.url}/ClaimantServiceBean/ClaimantWebService").to_timeout - expect do - subject.find_poa_by_participant_id('also-does-not-matter') - end.to raise_error(Common::Exceptions::BadGateway) - end - - it 'hits breakers' do - ClaimsApi::BGSClient.breakers_service.begin_forced_outage! - expect { subject.find_poa_by_participant_id('also-does-not-matter') }.to raise_error(Breakers::OutageException) - ClaimsApi::BGSClient.breakers_service.end_forced_outage! - end - end - - it 'triggers StatsD measurements' do - VCR.use_cassette('claims_api/bgs/claimant_web_service/find_poa_by_participant_id', - allow_playback_repeats: true) do - %w[built_request connection_post parsed_response transformed_response].each do |event| - expect { subject.find_poa_by_participant_id('does-not-matter') } - .to trigger_statsd_measure("api.claims_api.local_bgs.#{event}.duration") - end - end - end - end - # Testing potential ways the current check could be tricked describe '#all' do let(:subject_instance) { subject } diff --git a/modules/claims_api/spec/lib/claims_api/local_bgs_spec.rb b/modules/claims_api/spec/lib/claims_api/local_bgs_spec.rb index a48ac80727f..a3a9b94a336 100644 --- a/modules/claims_api/spec/lib/claims_api/local_bgs_spec.rb +++ b/modules/claims_api/spec/lib/claims_api/local_bgs_spec.rb @@ -70,7 +70,7 @@ # 1: establish_ssl_connection - how long to establish the connection # 2: connection_post - how long does the post itself take for the request cycle # 3: parsed_response - how long to parse the response - expect(ClaimsApi::Logger).to receive(:log).exactly(3).times + expect(ClaimsApi::Logger).to receive(:log).exactly(4).times result = subject.find_poa_by_participant_id('does-not-matter') expect(result).to be_a Hash expect(result[:begin_date]).to eq '09/03/2024' diff --git a/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_evss_mapper_spec.rb b/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_evss_mapper_spec.rb index 621f7ab32f3..613b3ea27db 100644 --- a/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_evss_mapper_spec.rb +++ b/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_evss_mapper_spec.rb @@ -249,7 +249,7 @@ reserves_addition = evss_data[:serviceInformation][:reservesNationalGuardService] expect(reserves_addition[:title10Activation][:title10ActivationDate]).to eq('2023-10-01') - expect(reserves_addition[:title10Activation][:anticipatedSeparationDate]).to eq('2024-10-31') + expect(reserves_addition[:title10Activation][:anticipatedSeparationDate]).to eq('2025-10-31') expect(reserves_addition[:obligationTermOfServiceFromDate]).to eq('2019-06-04') expect(reserves_addition[:obligationTermOfServiceToDate]).to eq('2020-06-04') expect(reserves_addition[:unitName]).to eq('National Guard Unit Name') diff --git a/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_pdf_mapper_spec.rb b/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_pdf_mapper_spec.rb index fad7e059e5d..dc6a2c6b212 100644 --- a/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_pdf_mapper_spec.rb +++ b/modules/claims_api/spec/lib/claims_api/v2/disability_compensation_pdf_mapper_spec.rb @@ -692,7 +692,7 @@ expect(alt_names).to eq(['john jacob', 'johnny smith']) expect(fed_orders).to eq('YES') expect(fed_act).to eq({ month: '10', day: '01', year: '2023' }) - expect(fed_sep).to eq({ month: '10', day: '31', year: '2024' }) + expect(fed_sep).to eq({ month: '10', day: '31', year: '2025' }) expect(served_after_nine_eleven).to eq('NO') end diff --git a/modules/claims_api/spec/sidekiq/flash_updater_spec.rb b/modules/claims_api/spec/sidekiq/flash_updater_spec.rb index c7c05fbde83..887bb87e01f 100644 --- a/modules/claims_api/spec/sidekiq/flash_updater_spec.rb +++ b/modules/claims_api/spec/sidekiq/flash_updater_spec.rb @@ -38,10 +38,10 @@ it 'submits flashes to bgs successfully' do flashes.each do |flash_name| - expect_any_instance_of(BGS::ClaimantWebService) - .to receive(:add_flash).with(file_number: claim.auth_headers['va_eauth_pnid'], flash_name:) + allow_any_instance_of(ClaimsApi::ClaimantWebService) + .to receive(:add_flash).with(file_number: claim.auth_headers['va_eauth_pnid'], flash: { flash_name: }) end - expect_any_instance_of(BGS::ClaimantWebService) + expect_any_instance_of(ClaimsApi::ClaimantWebService) .to receive(:find_assigned_flashes).with(claim.auth_headers['va_eauth_pnid']).and_return(assigned_flashes) subject.new.perform(flashes, claim.id) @@ -50,15 +50,15 @@ it 'continues submitting flashes on exception' do flashes.each_with_index do |flash_name, index| if index.zero? - expect_any_instance_of(BGS::ClaimantWebService).to receive(:add_flash) - .with(file_number: claim.auth_headers['va_eauth_pnid'], flash_name:) + allow_any_instance_of(ClaimsApi::ClaimantWebService).to receive(:add_flash) + .with(file_number: claim.auth_headers['va_eauth_pnid'], flash: { flash_name: }) .and_raise(BGS::ShareError.new('failed', 500)) else - expect_any_instance_of(BGS::ClaimantWebService) - .to receive(:add_flash).with(file_number: claim.auth_headers['va_eauth_pnid'], flash_name:) + allow_any_instance_of(ClaimsApi::ClaimantWebService) + .to receive(:add_flash).with(file_number: claim.auth_headers['va_eauth_pnid'], flash: { flash_name: }) end end - expect_any_instance_of(BGS::ClaimantWebService) + expect_any_instance_of(ClaimsApi::ClaimantWebService) .to receive(:find_assigned_flashes).with(claim.auth_headers['va_eauth_pnid']).and_return(assigned_flashes) subject.new.perform(flashes, claim.id) @@ -66,11 +66,11 @@ it 'stores multiple bgs exceptions correctly' do flashes.each do |flash_name| - expect_any_instance_of(BGS::ClaimantWebService).to receive(:add_flash) - .with(file_number: claim.auth_headers['va_eauth_pnid'], flash_name:) + allow_any_instance_of(ClaimsApi::ClaimantWebService).to receive(:add_flash) + .with(file_number: claim.auth_headers['va_eauth_pnid'], flash: { flash_name: }) .and_raise(BGS::ShareError.new('failed', 500)) end - expect_any_instance_of(BGS::ClaimantWebService) + expect_any_instance_of(ClaimsApi::ClaimantWebService) .to receive(:find_assigned_flashes).with(claim.auth_headers['va_eauth_pnid']).and_return({ flashes: [] }) subject.new.perform(flashes, claim.id) From cb83b62358a102df40b45645f9326f2fb7d5e774 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:04:17 -0700 Subject: [PATCH 18/22] API-42007-find-by-ssn-claims-controller (#19512) * Uses person_web_service to access find_by_ssn rather than local_bgs in the claims controller v2, & supporting_documents. * Updates flipper feature. * Renames flipper. Adds if clause to check if flipper is enabled. Adds mock to ignore flipper in v2 claims_spec. * Adds flipper check to v2 claims_spec. --- .../v2/veterans/claims_controller.rb | 3 +- .../claims_requests/supporting_documents.rb | 24 ++++++++-- .../lib/bgs_service/person_web_service.rb | 9 ++++ .../supporting_documents_spec.rb | 47 +++++++++++++------ .../spec/requests/v2/veterans/claims_spec.rb | 40 ++++++++++++++-- 5 files changed, 99 insertions(+), 24 deletions(-) diff --git a/modules/claims_api/app/controllers/claims_api/v2/veterans/claims_controller.rb b/modules/claims_api/app/controllers/claims_api/v2/veterans/claims_controller.rb index 9420e881faf..191a56f07c3 100644 --- a/modules/claims_api/app/controllers/claims_api/v2/veterans/claims_controller.rb +++ b/modules/claims_api/app/controllers/claims_api/v2/veterans/claims_controller.rb @@ -68,8 +68,9 @@ def generate_show_output(bgs_claim:, lighthouse_claim:) # rubocop:disable Metric lighthouse_id: nil, upstream_id: bgs_details[:benefit_claim_id]) end + ssn = auth_headers['va_eauth_pnid'] structure.merge!(errors: get_errors(lighthouse_claim)) - structure.merge!(supporting_documents: build_supporting_docs(bgs_claim)) + structure.merge!(supporting_documents: build_supporting_docs(bgs_claim, ssn)) structure.merge!(tracked_items: map_bgs_tracked_items(bgs_claim)) end diff --git a/modules/claims_api/app/controllers/concerns/claims_api/v2/claims_requests/supporting_documents.rb b/modules/claims_api/app/controllers/concerns/claims_api/v2/claims_requests/supporting_documents.rb index 3e8b2456b8e..ddcba750d52 100644 --- a/modules/claims_api/app/controllers/concerns/claims_api/v2/claims_requests/supporting_documents.rb +++ b/modules/claims_api/app/controllers/concerns/claims_api/v2/claims_requests/supporting_documents.rb @@ -7,11 +7,11 @@ module SupportingDocuments extend ActiveSupport::Concern # rubocop:disable Metrics/MethodLength - def build_supporting_docs(bgs_claim) + def build_supporting_docs(bgs_claim, ssn) return [] if bgs_claim.nil? @supporting_documents = [] - file_number = get_file_number + file_number = get_file_number(ssn) return [] if file_number.nil? docs = if benefits_documents_enabled? @@ -42,11 +42,11 @@ def build_supporting_docs(bgs_claim) end # rubocop:enable Metrics/MethodLength - def get_file_number + def get_file_number(ssn) file_number = if use_birls_id_file_number? target_veteran.birls_id else - local_bgs_service.find_by_ssn(target_veteran.ssn)&.dig(:file_nbr) # rubocop:disable Rails/DynamicFindBy + find_by_ssn(ssn)&.dig(:file_nbr) end if file_number.blank? @@ -91,6 +91,22 @@ def benefits_documents_enabled? def use_birls_id_file_number? Flipper.enabled? :lighthouse_claims_api_use_birls_id end + + def find_by_ssn(ssn) + if Flipper.enabled? :claims_api_use_person_web_service + # rubocop:disable Rails/DynamicFindBy + ClaimsApi::PersonWebService.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ).find_by_ssn(ssn) + else + ClaimsApi::LocalBGS.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ).find_by_ssn(ssn) + # rubocop:enable Rails/DynamicFindBy + end + end end end end diff --git a/modules/claims_api/lib/bgs_service/person_web_service.rb b/modules/claims_api/lib/bgs_service/person_web_service.rb index b8a9971f535..0c3ac728b04 100644 --- a/modules/claims_api/lib/bgs_service/person_web_service.rb +++ b/modules/claims_api/lib/bgs_service/person_web_service.rb @@ -35,5 +35,14 @@ def manage_ptcpnt_rlnshp_poa(**options) make_request(endpoint: bean_name, action: 'managePtcpntRlnshpPoa', body:, key: 'PtcpntRlnshpDTO') end + + # finds a PERSON row by SSN + def find_by_ssn(ssn) + body = Nokogiri::XML::DocumentFragment.parse <<~EOXML + #{ssn} + EOXML + + make_request(endpoint: bean_name, action: 'findPersonBySSN', body:, key: 'PersonDTO') + end end end diff --git a/modules/claims_api/spec/concerns/claims_api/v2/claims_requests/supporting_documents_spec.rb b/modules/claims_api/spec/concerns/claims_api/v2/claims_requests/supporting_documents_spec.rb index 2b1de92a6b1..d0fe2f5208c 100644 --- a/modules/claims_api/spec/concerns/claims_api/v2/claims_requests/supporting_documents_spec.rb +++ b/modules/claims_api/spec/concerns/claims_api/v2/claims_requests/supporting_documents_spec.rb @@ -2,15 +2,23 @@ require 'rails_helper' require 'bd/bd' +require 'bgs_service/person_web_service' class FakeController include ClaimsApi::V2::ClaimsRequests::SupportingDocuments def local_bgs_service - @local_bgs_service ||= ClaimsApi::LocalBGS.new( - external_uid: target_veteran.participant_id, - external_key: target_veteran.participant_id - ) + if Flipper.enabled? :claims_api_use_person_web_service + ClaimsApi::PersonWebService.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ) + else + ClaimsApi::LocalBGS.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ) + end end def target_veteran @@ -54,7 +62,7 @@ def params } } end - + let(:ssn) { '796111863' } let(:supporting_doc_list) do { data: { documents: [ @@ -99,9 +107,9 @@ def params before do allow(Flipper).to receive(:enabled?).with(:claims_status_v2_lh_benefits_docs_service_enabled).and_return(true) allow(Flipper).to receive(:enabled?).with(:lighthouse_claims_api_use_birls_id).and_return(false) + allow(Flipper).to receive(:enabled?).with(:claims_api_use_person_web_service).and_return(false) - allow(controller.local_bgs_service).to receive(:find_by_ssn).with('796111863') - .and_return({ file_nbr: '796111863' }) + allow(controller).to receive(:get_file_number).with('796111863').and_return('796111863') allow(controller.benefits_doc_api).to receive(:search).with('8675309', '796111863') .and_return(supporting_doc_list) end @@ -109,13 +117,13 @@ def params describe '#build_supporting_docs from Benefits Documents' do it 'builds and returns the correctly number of docs' do allow(controller).to receive(:get_file_number).and_return('796111863') - result = controller.build_supporting_docs(bgs_claim) + result = controller.build_supporting_docs(bgs_claim, ssn) expect(result.length).to eq(supporting_doc_list[:data][:documents].length) end it 'builds the correct doc output' do allow(controller).to receive(:get_file_number).and_return('796111863') - result = controller.build_supporting_docs(bgs_claim) + result = controller.build_supporting_docs(bgs_claim, ssn) expect(result[0][:document_id]).to eq(supporting_doc_list[:data][:documents][0][:documentId]) expect(result[0][:document_type_label]).to eq(supporting_doc_list[:data][:documents][0][:documentTypeLabel]) @@ -133,12 +141,12 @@ def params end it 'builds and returns the correctly number of docs' do - result = controller.build_supporting_docs(bgs_claim) + result = controller.build_supporting_docs(bgs_claim, ssn) expect(result.length).to eq(evss_doc_list['documents'].length) end it 'builds the correct doc output' do - result = controller.build_supporting_docs(bgs_claim) + result = controller.build_supporting_docs(bgs_claim, ssn) expect(result[0][:document_id]).to eq(evss_doc_list['documents'][0]['document_id']) expect(result[0][:document_type_label]).to eq(evss_doc_list['documents'][0]['document_type_label']) @@ -173,11 +181,20 @@ def params end end - describe '#get_file_number' do - it 'checks if the file number' do - result = controller.get_file_number + describe 'when the claims_api_use_person_web_service flipper is on' do + let(:person_web_service) { instance_double(ClaimsApi::PersonWebService) } + + before do + allow(Flipper).to receive(:enabled?).with(:claims_api_use_person_web_service).and_return true + allow(ClaimsApi::PersonWebService).to receive(:new).with(external_uid: anything, + external_key: anything) + .and_return(person_web_service) + allow(person_web_service).to receive(:find_by_ssn).and_return({ file_nbr: '796111863' }) + end - expect(result).to eq('796111863') + it 'calls local bgs services instead of bgs-ext' do + controller.find_by_ssn(ssn) # rubocop:disable Rails/DynamicFindBy + expect(person_web_service).to have_received(:find_by_ssn) end end end diff --git a/modules/claims_api/spec/requests/v2/veterans/claims_spec.rb b/modules/claims_api/spec/requests/v2/veterans/claims_spec.rb index bb758d40741..63d0be0183d 100644 --- a/modules/claims_api/spec/requests/v2/veterans/claims_spec.rb +++ b/modules/claims_api/spec/requests/v2/veterans/claims_spec.rb @@ -4,6 +4,7 @@ require_relative '../../../rails_helper' require 'token_validation/v2/client' require 'bgs_service/local_bgs' +require 'bgs_service/person_web_service' require 'concerns/claims_api/v2/claims_requests/supporting_documents' RSpec.describe 'ClaimsApi::V2::Veterans::Claims', type: :request do @@ -38,12 +39,41 @@ profile: FactoryBot.build(:mpi_profile, icn: '667711332299') ) end + let(:person_web_service) do + if Flipper.enabled? :claims_api_use_person_web_service + ClaimsApi::PersonWebService.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ) + else + ClaimsApi::LocalBGS.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ) + end + end + let(:target_veteran) do + OpenStruct.new( + icn: '1013062086V794840', + first_name: 'abraham', + last_name: 'lincoln', + loa: { current: 3, highest: 3 }, + ssn: '796111863', + edipi: '8040545646', + participant_id: '600061742', + mpi: OpenStruct.new( + icn: '1013062086V794840', + profile: OpenStruct.new(ssn: '796111863') + ) + ) + end describe 'Claims' do before do allow(Flipper).to receive(:enabled?).with(:claims_status_v2_lh_benefits_docs_service_enabled).and_return false allow(Flipper).to receive(:enabled?).with(:claims_load_testing).and_return false allow(Flipper).to receive(:enabled?).with(:lighthouse_claims_api_use_birls_id).and_return false + allow(Flipper).to receive(:enabled?).with(:claims_api_use_person_web_service).and_return false end describe 'index' do @@ -845,8 +875,8 @@ allow(local_bgs_service) .to receive_messages(find_benefit_claim_details_by_benefit_claim_id: bgs_claim, - find_by_ssn: nil, find_tracked_items: { dvlpmt_items: [] }) - + find_tracked_items: { dvlpmt_items: [] }) + allow(person_web_service).to receive(:find_by_ssn).with('123456789').and_return(nil) get claim_by_id_path, headers: auth_header json_response = JSON.parse(response.body) @@ -898,7 +928,8 @@ allow(local_bgs_service) .to receive_messages(find_benefit_claim_details_by_benefit_claim_id: bgs_claim, - find_by_ssn: nil, find_tracked_items: { dvlpmt_items: [] }) + find_tracked_items: { dvlpmt_items: [] }) + allow(person_web_service).to receive(:find_by_ssn).with('1233456789').and_return(nil) get claim_by_id_path, headers: auth_header @@ -948,7 +979,8 @@ allow(local_bgs_service) .to receive_messages(find_benefit_claim_details_by_benefit_claim_id: bgs_claim, - find_by_ssn: nil, find_tracked_items: { dvlpmt_items: [] }) + find_tracked_items: { dvlpmt_items: [] }) + allow(person_web_service).to receive(:find_by_ssn).with('796043735').and_return('796043735') benefits_doc_api = double allow_any_instance_of(ClaimsApi::V2::Veterans::ClaimsController) From 238bf3a6b6eb01b8adbada9f55e577d8f0fbcf36 Mon Sep 17 00:00:00 2001 From: Jennica Stiehl <25069483+stiehlrod@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:05:25 -0700 Subject: [PATCH 19/22] API-42279-find-by-ssn-poa-controller (#19520) * Switches out LocalBgs find_by_ssn for Person web service. Adjusts tests. * Add flipper feature, and find_by_ssn to person web service. * Adds if clause for flipper. * Adds test. Adds flipper check in find_by_ssn method in POA controller. * Linting --- .../v1/forms/power_of_attorney_controller.rb | 20 ++++++--- .../lib/bgs_service/person_web_service.rb | 9 ++++ .../spec/requests/v1/forms/2122_spec.rb | 41 +++++++++++++++++-- 3 files changed, 61 insertions(+), 9 deletions(-) diff --git a/modules/claims_api/app/controllers/claims_api/v1/forms/power_of_attorney_controller.rb b/modules/claims_api/app/controllers/claims_api/v1/forms/power_of_attorney_controller.rb index 467d6a054ef..d270784112f 100644 --- a/modules/claims_api/app/controllers/claims_api/v1/forms/power_of_attorney_controller.rb +++ b/modules/claims_api/app/controllers/claims_api/v1/forms/power_of_attorney_controller.rb @@ -2,6 +2,7 @@ require 'bgs/power_of_attorney_verifier' require 'bgs_service/local_bgs' +require 'bgs_service/person_web_service' require 'claims_api/dependent_claimant_validation' module ClaimsApi @@ -267,12 +268,19 @@ def build_representative_info(poa_code) end def find_by_ssn(ssn) - # rubocop:disable Rails/DynamicFindBy - ClaimsApi::LocalBGS.new( - external_uid: target_veteran.participant_id, - external_key: target_veteran.participant_id - ).find_by_ssn(ssn) - # rubocop:enable Rails/DynamicFindBy + if Flipper.enabled? :claims_api_use_person_web_service + # rubocop:disable Rails/DynamicFindBy + ClaimsApi::PersonWebService.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ).find_by_ssn(ssn) + else + ClaimsApi::LocalBGS.new( + external_uid: target_veteran.participant_id, + external_key: target_veteran.participant_id + ).find_by_ssn(ssn) + # rubocop:enable Rails/DynamicFindBy + end end def check_request_ssn_matches_mpi(req_headers) diff --git a/modules/claims_api/lib/bgs_service/person_web_service.rb b/modules/claims_api/lib/bgs_service/person_web_service.rb index 0c3ac728b04..600ddb2bbcc 100644 --- a/modules/claims_api/lib/bgs_service/person_web_service.rb +++ b/modules/claims_api/lib/bgs_service/person_web_service.rb @@ -45,4 +45,13 @@ def find_by_ssn(ssn) make_request(endpoint: bean_name, action: 'findPersonBySSN', body:, key: 'PersonDTO') end end + + # finds a PERSON row by SSN + def find_by_ssn(ssn) + body = Nokogiri::XML::DocumentFragment.parse <<~EOXML + #{ssn} + EOXML + + make_request(endpoint: bean_name, action: 'findPersonBySSN', body:, key: 'PersonDTO') + end end diff --git a/modules/claims_api/spec/requests/v1/forms/2122_spec.rb b/modules/claims_api/spec/requests/v1/forms/2122_spec.rb index e959a03400a..e18708291a4 100644 --- a/modules/claims_api/spec/requests/v1/forms/2122_spec.rb +++ b/modules/claims_api/spec/requests/v1/forms/2122_spec.rb @@ -3,6 +3,7 @@ require 'rails_helper' require_relative '../../../rails_helper' require 'bgs_service/local_bgs' +require 'bgs_service/person_web_service' RSpec.describe 'ClaimsApi::V1::Forms::2122', type: :request do let(:headers) do @@ -20,10 +21,19 @@ profile: FactoryBot.build(:mpi_profile, participant_id: nil, participant_ids: %w[123456789 987654321]) ) end - let(:pws) { ClaimsApi::LocalBGS } + let(:pws) do + if Flipper.enabled? :claims_api_use_person_web_service + ClaimsApi::PersonWebService + else + ClaimsApi::LocalBGS + end + end before do stub_poa_verification + allow(Flipper).to receive(:enabled?).with(:claims_load_testing).and_return false + allow(Flipper).to receive(:enabled?).with(:claims_api_use_person_web_service).and_return false + allow(Flipper).to receive(:enabled?).with(:lighthouse_claims_api_poa_dependent_claimants).and_return false end describe '#2122' do @@ -63,6 +73,29 @@ first_name: 'Abraham', last_name: 'Lincoln').save! end + describe 'when the claims_api_use_person_web_service flipper is on' do + let(:person_web_service) { instance_double(ClaimsApi::PersonWebService) } + + before do + allow(Flipper).to receive(:enabled?).with(:claims_api_use_person_web_service).and_return true + allow(ClaimsApi::PersonWebService).to receive(:new).with(external_uid: anything, + external_key: anything) + .and_return(person_web_service) + allow(person_web_service).to receive(:find_by_ssn).and_return({ file_nbr: '796111863' }) + end + + it 'calls local bgs services instead of bgs-ext' do + mock_acg(scopes) do |auth_header| + allow_any_instance_of(ClaimsApi::V1::Forms::PowerOfAttorneyController) + .to receive(:check_request_ssn_matches_mpi).and_return(nil) + allow(BGS::PowerOfAttorneyVerifier).to receive(:new).and_return(bgs_poa_verifier) + allow(bgs_poa_verifier).to receive(:current_poa_code).and_return(Struct.new(:code).new('HelloWorld')) + post path, params: data, headers: headers.merge(auth_header) + expect(person_web_service).to have_received(:find_by_ssn) + end + end + end + context 'when Veteran has all necessary identifiers' do it 'assigns a source' do mock_acg(scopes) do |auth_header| @@ -414,7 +447,8 @@ end before do - Flipper.enable(:lighthouse_claims_api_poa_dependent_claimants) + allow_any_instance_of(Flipper).to receive(:enabled?).with(:lighthouse_claims_api_poa_dependent_claimants) + .and_return true end context 'and the request includes a dependent claimant' do @@ -702,7 +736,8 @@ context 'when the lighthouse_claims_api_poa_dependent_claimants feature is enabled' do before do - Flipper.enable(:lighthouse_claims_api_poa_dependent_claimants) + allow_any_instance_of(Flipper).to receive(:enabled?).with(:lighthouse_claims_api_poa_dependent_claimants) + .and_return true end context 'and the request includes a dependent claimant' do From 2006cdd5d4a29f04c903b635ec2429ef64959786 Mon Sep 17 00:00:00 2001 From: Wayne Weibel Date: Tue, 26 Nov 2024 11:07:37 -0500 Subject: [PATCH 20/22] Burial 90229 Refactor away from CentralMail (#19461) --- .github/CODEOWNERS | 2 - .../v0/burial_claims_controller.rb | 43 +++++++++---------- app/models/saved_claim/burial.rb | 2 +- app/sidekiq/central_mail/delete_old_claims.rb | 23 ---------- .../v0/burial_claims_controller_spec.rb | 39 +++++++---------- spec/factories/central_mail_submissions.rb | 2 +- .../central_mail/delete_old_claims_spec.rb | 33 -------------- 7 files changed, 37 insertions(+), 107 deletions(-) delete mode 100644 app/sidekiq/central_mail/delete_old_claims.rb delete mode 100644 spec/sidekiq/central_mail/delete_old_claims_spec.rb diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cd75959d147..93f6f3fdbec 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -610,7 +610,6 @@ app/sidekiq/account_login_statistics_job.rb @department-of-veterans-affairs/octo app/sidekiq/benefits_intake_remediation_status_job.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/sidekiq/benefits_intake_status_job.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/Disability-Experience @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/sidekiq/bgs @department-of-veterans-affairs/benefits-dependents-management @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group -app/sidekiq/central_mail/delete_old_claims.rb @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/sidekiq/central_mail/submit_form4142_job.rb @department-of-veterans-affairs/Disability-Experience @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group app/sidekiq/central_mail/submit_central_form686c_job.rb @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/benefits-dependents-management app/sidekiq/copay_notifications @department-of-veterans-affairs/vsa-debt-resolution @department-of-veterans-affairs/backend-review-group @@ -1338,7 +1337,6 @@ spec/fixtures/vbms @department-of-veterans-affairs/benefits-dependents-managemen spec/sidekiq/account_login_statistics_job_spec.rb @department-of-veterans-affairs/octo-identity spec/sidekiq/benefits_intake_status_job_spec.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/Disability-Experience @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/sidekiq/bgs @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/benefits-dependents-management -spec/sidekiq/central_mail/delete_old_claims_spec.rb @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/sidekiq/central_mail/submit_career_counseling_job_spec.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group spec/sidekiq/central_mail/submit_form4142_job_spec.rb @department-of-veterans-affairs/backend-review-group spec/sidekiq/central_mail/submit_central_form686c_job_spec.rb @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/benefits-dependents-management diff --git a/app/controllers/v0/burial_claims_controller.rb b/app/controllers/v0/burial_claims_controller.rb index 6c2c4b8f8d8..c53d7167594 100644 --- a/app/controllers/v0/burial_claims_controller.rb +++ b/app/controllers/v0/burial_claims_controller.rb @@ -2,28 +2,24 @@ require 'pension_burial/tag_sentry' require 'burials/monitor' +require 'common/exceptions/validation_errors' module V0 - class BurialClaimsController < ClaimsBaseController + class BurialClaimsController < ApplicationController + skip_before_action(:authenticate) + before_action :load_user, only: :create + service_tag 'burial-application' def show - # TODO: update FE to no longer poll for submission, @see Pensions::ClaimsController claim = claim_class.find_by!(guid: params[:id]) - form_submission = claim&.form_submissions&.last - submission_attempt = form_submission&.form_submission_attempts&.last - if submission_attempt - state = submission_attempt.aasm_state == 'failure' ? 'failure' : 'success' - render(json: { data: { attributes: { state: } } }) - elsif central_mail_submission - render json: CentralMailSubmissionSerializer.new(central_mail_submission) - end + render json: SavedClaimSerializer.new(claim) rescue ActiveRecord::RecordNotFound => e monitor.track_show404(params[:id], current_user, e) - render(json: { data: { attributes: { state: 'not found' } } }, status: :not_found) + render(json: { error: e.to_s }, status: :not_found) rescue => e monitor.track_show_error(params[:id], current_user, e) - render(json: { data: { attributes: { state: 'error processing request' } } }, status: :unprocessable_entity) + raise e end def create @@ -53,15 +49,6 @@ def create raise e end - def create_claim - if Flipper.enabled?(:va_burial_v2) - form = filtered_params[:form] - claim_class.new(form:, formV2: form.present? ? JSON.parse(form)['formV2'] : nil) - else - claim_class.new(form: filtered_params[:form]) - end - end - private # an identifier that matches the parameter that the form will be set as in the JSON submission. @@ -74,8 +61,13 @@ def claim_class SavedClaim::Burial end - def central_mail_submission - CentralMailSubmission.joins(:central_mail_claim).find_by(saved_claims: { guid: params[:id] }) + def create_claim + if Flipper.enabled?(:va_burial_v2) + form = filtered_params[:form] + claim_class.new(form:, formV2: form.present? ? JSON.parse(form)['formV2'] : nil) + else + claim_class.new(form: filtered_params[:form]) + end end def process_and_upload_to_lighthouse(in_progress_form, claim) @@ -87,6 +79,11 @@ def process_and_upload_to_lighthouse(in_progress_form, claim) raise e end + # Filters out the parameters to form access. + def filtered_params + params.require(short_name.to_sym).permit(:form) + end + ## # include validation error on in_progress_form metadata. # `noop` if in_progress_form is `blank?` diff --git a/app/models/saved_claim/burial.rb b/app/models/saved_claim/burial.rb index 9c9d9c4b941..c1e5d255c66 100644 --- a/app/models/saved_claim/burial.rb +++ b/app/models/saved_claim/burial.rb @@ -2,7 +2,7 @@ require 'pension_burial/processing_office' -class SavedClaim::Burial < CentralMailClaim +class SavedClaim::Burial < SavedClaim FORM = '21P-530' # attribute name is passed from the FE as a flag, maintaining camel case diff --git a/app/sidekiq/central_mail/delete_old_claims.rb b/app/sidekiq/central_mail/delete_old_claims.rb deleted file mode 100644 index 00ae786495b..00000000000 --- a/app/sidekiq/central_mail/delete_old_claims.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -require 'pension_burial/tag_sentry' - -module CentralMail - class DeleteOldClaims - include Sidekiq::Job - - sidekiq_options retry: false - - EXPIRATION_TIME = 2.months - - def perform - PensionBurial::TagSentry.tag_sentry - - CentralMailClaim.joins(:central_mail_submission).where.not( - central_mail_submissions: { state: 'pending' } - ).where( - 'created_at < ?', EXPIRATION_TIME.ago - ).find_each(&:destroy!) - end - end -end diff --git a/spec/controllers/v0/burial_claims_controller_spec.rb b/spec/controllers/v0/burial_claims_controller_spec.rb index cff9648781c..c7fccbc7651 100644 --- a/spec/controllers/v0/burial_claims_controller_spec.rb +++ b/spec/controllers/v0/burial_claims_controller_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' require 'support/controller_spec_helper' -require_relative '../../../lib/burials/monitor' +require 'burials/monitor' RSpec.describe V0::BurialClaimsController, type: :controller do let(:monitor) { double('Burials::Monitor') } @@ -25,10 +25,6 @@ let(:form_id) { '21P-530V2' } let(:user) { create(:user) } - def send_create - post(:create, params: { param_name => { form: form.form } }) - end - it 'logs validation errors' do allow(SavedClaim::Burial).to receive(:new).and_return(form) allow(form).to receive_messages(save: false, errors: 'mock error') @@ -38,48 +34,43 @@ def send_create expect(monitor).to receive(:track_create_error).once expect(form).not_to receive(:process_attachments!) - response = send_create + response = post(:create, params: { param_name => { form: form.form } }) expect(response.status).to eq(500) end end describe '#show' do - it 'returns the submission status when the claim uses central mail' do - claim = create(:burial_claim_v2) - claim.central_mail_submission.update!(state: 'success') - get(:show, params: { id: claim.guid }) - - expect(JSON.parse(response.body)['data']['attributes']['state']).to eq('success') - end + let(:claim) { build(:burial_claim_v2) } - it 'returns the submission status when the claim uses benefits intake' do - claim = create(:burial_claim_v2) - claim.form_submissions << create(:form_submission, :pending, form_type: '21P-530V2') - get(:show, params: { id: claim.guid }) + it 'returns a success when the claim is found' do + allow(SavedClaim::Burial).to receive(:find_by!).and_return(claim) + response = get(:show, params: { id: claim.guid }) - expect(JSON.parse(response.body)['data']['attributes']['state']).to eq('success') + expect(response.status).to eq(200) end it 'returns an error if the claim is not found' do expect(monitor).to receive(:track_show404).once - get(:show, params: { id: '12345' }) + response = get(:show, params: { id: 'non-existant-saved-claim' }) - expect(response).to have_http_status(:not_found) + expect(response.status).to eq(404) end it 'logs show errors' do - allow(SavedClaim::Burial).to receive(:find_by).and_raise(StandardError, 'mock error') + error = StandardError.new('Mock Error') + allow(SavedClaim::Burial).to receive(:find_by!).and_raise(error) + expect(monitor).to receive(:track_show_error).once - get(:show, params: { id: '12345' }) + response = get(:show, params: { id: 'non-existant-saved-claim' }) - expect(response).to have_http_status(:unprocessable_entity) + expect(response.status).to eq(500) end end describe '#process_and_upload_to_lighthouse' do - let(:claim) { build(:pensions_module_pension_claim) } + let(:claim) { build(:burial_claim_v2) } let(:in_progress_form) { build(:in_progress_form) } it 'returns a success' do diff --git a/spec/factories/central_mail_submissions.rb b/spec/factories/central_mail_submissions.rb index 4bc0b8c3b6f..b14c50b305c 100644 --- a/spec/factories/central_mail_submissions.rb +++ b/spec/factories/central_mail_submissions.rb @@ -4,7 +4,7 @@ FactoryBot.define do factory :central_mail_submission do - association :central_mail_claim, factory: :burial_claim + association :central_mail_claim, factory: :education_career_counseling_claim state { 'success' } end end diff --git a/spec/sidekiq/central_mail/delete_old_claims_spec.rb b/spec/sidekiq/central_mail/delete_old_claims_spec.rb deleted file mode 100644 index eea49f7a10b..00000000000 --- a/spec/sidekiq/central_mail/delete_old_claims_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe CentralMail::DeleteOldClaims, :uploader_helpers, type: :model do - describe '#perform' do - stub_virus_scan - - it 'deletes old central mail claims' do - new_attachment_success = create(:pension_burial) - old_attachment_pending = create(:pension_burial) - old_attachment_success = create(:pension_burial) - file = old_attachment_success.file - [new_attachment_success, old_attachment_success].each do |attachment| - attachment.saved_claim.central_mail_submission.update(state: 'success') - end - - [old_attachment_pending, old_attachment_success].each do |attachment| - attachment.saved_claim.update(created_at: 2.months.ago - 1.day) - end - - described_class.new.perform - - expect(model_exists?(new_attachment_success)).to eq(true) - expect(model_exists?(old_attachment_pending)).to eq(true) - - expect(model_exists?(old_attachment_success)).to eq(false) - expect(model_exists?(old_attachment_success.saved_claim)).to eq(false) - expect(model_exists?(old_attachment_success.saved_claim.central_mail_submission)).to eq(false) - expect(file.exists?).to eq(false) - end - end -end From 153cf7ac071b959e72df9bbbe6defb465c62967f Mon Sep 17 00:00:00 2001 From: Gaurav Gupta Date: Tue, 26 Nov 2024 09:21:27 -0800 Subject: [PATCH 21/22] 96410 token endpoint implementation (#19583) * 96410 token endpoint implementation * 96410 specs * 96410 remove access token store * 96410 add specs * 96410 fixes to ttl and param freeze, add spec --- config/redis.yml | 2 +- .../app/services/eps/access_token_store.rb | 14 --- modules/vaos/app/services/eps/base_service.rb | 47 +++++++++- .../vaos/app/services/eps/configuration.rb | 4 +- .../services/eps/access_token_store_spec.rb | 36 -------- .../spec/services/eps/base_service_spec.rb | 86 ++++++++++++++++++- .../spec/services/eps/configuration_spec.rb | 2 +- 7 files changed, 132 insertions(+), 59 deletions(-) delete mode 100644 modules/vaos/app/services/eps/access_token_store.rb delete mode 100644 modules/vaos/spec/services/eps/access_token_store_spec.rb diff --git a/config/redis.yml b/config/redis.yml index 0d815acb8a5..eafdbea4800 100644 --- a/config/redis.yml +++ b/config/redis.yml @@ -122,7 +122,7 @@ development: &defaults each_ttl: 60 eps_access_token: namespace: eps-access-token - each_ttl: 900 # 15 minutes + each_ttl: 840 # 14 minutes saml_request_tracker: namespace: saml_request_tracker each_ttl: 3600 # 1 hour diff --git a/modules/vaos/app/services/eps/access_token_store.rb b/modules/vaos/app/services/eps/access_token_store.rb deleted file mode 100644 index e478d40bd3a..00000000000 --- a/modules/vaos/app/services/eps/access_token_store.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -require 'common/models/redis_store' - -module Eps - class AccessTokenStore < Common::RedisStore - redis_store REDIS_CONFIG[:eps_access_token][:namespace] - redis_ttl REDIS_CONFIG[:eps_access_token][:each_ttl] - redis_key :token_type - - attribute :token_type - attribute :access_token - end -end diff --git a/modules/vaos/app/services/eps/base_service.rb b/modules/vaos/app/services/eps/base_service.rb index 0ac2c701c0b..86a90650044 100644 --- a/modules/vaos/app/services/eps/base_service.rb +++ b/modules/vaos/app/services/eps/base_service.rb @@ -2,18 +2,61 @@ module Eps class BaseService < VAOS::SessionService + include Common::Client::Concerns::Monitoring + STATSD_KEY_PREFIX = 'api.eps' + REDIS_TOKEN_KEY = REDIS_CONFIG[:eps_access_token][:namespace] + REDIS_TOKEN_TTL = REDIS_CONFIG[:eps_access_token][:each_ttl] def headers { - 'Authorization' => 'Bearer 1234', + 'Authorization' => "Bearer #{token}", 'Content-Type' => 'application/json', 'X-Request-ID' => RequestStore.store['request_id'] } end def config - Eps::Configuration.instance + @config ||= Eps::Configuration.instance + end + + def get_token + with_monitoring do + perform(:post, + config.access_token_url, + token_params, + token_headers) + end + end + + def token + Rails.cache.fetch(REDIS_TOKEN_KEY, expires_in: REDIS_TOKEN_TTL) do + token_response = get_token + parse_token_response(token_response) + end + end + + private + + def parse_token_response(response) + raise TokenError, 'Invalid token response' if response.body.nil? || response.body['access_token'].blank? + + response.body['access_token'] + end + + def token_params + URI.encode_www_form({ + grant_type: config.grant_type, + scope: config.scopes, + client_assertion_type: config.client_assertion_type, + client_assertion: JwtWrapper.new.sign_assertion + }) end + + def token_headers + { 'Content-Type' => 'application/x-www-form-urlencoded' } + end + + class TokenError < StandardError; end end end diff --git a/modules/vaos/app/services/eps/configuration.rb b/modules/vaos/app/services/eps/configuration.rb index 27c0954bcdd..2a1f4f7d7c9 100644 --- a/modules/vaos/app/services/eps/configuration.rb +++ b/modules/vaos/app/services/eps/configuration.rb @@ -19,16 +19,14 @@ def mock_enabled? def connection Faraday.new(api_url, headers: base_request_headers, request: request_options) do |conn| conn.use :breakers - conn.request :camelcase conn.request :json - if ENV['VAOS_DEBUG'] && !Rails.env.production? + if ENV['VAOS_EPS_DEBUG'] && !Rails.env.production? conn.request(:curl, ::Logger.new($stdout), :warn) conn.response(:logger, ::Logger.new($stdout), bodies: true) end conn.response :betamocks if mock_enabled? - conn.response :snakecase conn.response :json, content_type: /\bjson$/ conn.adapter Faraday.default_adapter end diff --git a/modules/vaos/spec/services/eps/access_token_store_spec.rb b/modules/vaos/spec/services/eps/access_token_store_spec.rb deleted file mode 100644 index 8d4606d4bd4..00000000000 --- a/modules/vaos/spec/services/eps/access_token_store_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe Eps::AccessTokenStore do - subject { described_class } - - let(:access_token) { 'test-access-token' } - let(:token_type) { 'jwt_bearer' } - let(:redis_key) { "eps-access-token:#{token_type}" } - let(:cache_data) { { token_type:, access_token: } } - let(:token_store_client) { subject.new(token_type:, access_token:) } - - before do - token_store_client.save - end - - describe '#save' do - it 'saves the value in cache' do - token = Oj.load($redis.get(redis_key))[:access_token] - expect(token).to eq(access_token) - end - end - - describe '#ttl' do - it 'sets cache data expire to time from config file' do - expect($redis.ttl(redis_key)).to eq(900) - end - end - - describe '#find' do - it 'gets data from cache' do - expect(Oj.load($redis.get(redis_key))).to eq(cache_data) - end - end -end diff --git a/modules/vaos/spec/services/eps/base_service_spec.rb b/modules/vaos/spec/services/eps/base_service_spec.rb index b12817b59d3..a95534611f4 100644 --- a/modules/vaos/spec/services/eps/base_service_spec.rb +++ b/modules/vaos/spec/services/eps/base_service_spec.rb @@ -5,13 +5,18 @@ describe Eps::BaseService do let(:user) { double('User', account_uuid: '1234') } let(:service) { described_class.new(user) } + let(:mock_token_response) { double('Response', body: { 'access_token' => 'mock_token' }) } + let(:blank_token_response) { double('Response', body: { 'access_token' => '' }) } describe '#headers' do - it 'returns the correct headers' do + before do allow(RequestStore.store).to receive(:[]).with('request_id').and_return('request-id') + allow(service).to receive(:token).and_return('test_token') + end + it 'returns the correct headers' do expected_headers = { - 'Authorization' => 'Bearer 1234', + 'Authorization' => 'Bearer test_token', 'Content-Type' => 'application/json', 'X-Request-ID' => 'request-id' } @@ -24,4 +29,81 @@ expect(service.config).to be_instance_of(Eps::Configuration) end end + + describe '#token' do + context 'when cache is empty' do + before do + allow(Rails.cache).to receive(:fetch) + .with(described_class::REDIS_TOKEN_KEY, expires_in: described_class::REDIS_TOKEN_TTL) + .and_yield + allow(service).to receive(:get_token).and_return(mock_token_response) + end + + context 'when get_token returns a valid response' do + before do + allow(service).to receive(:get_token).and_return(mock_token_response) + end + + it 'fetches and caches new token' do + expect(service.token).to eq('mock_token') + end + end + + context 'when get_token returns a blank response' do + before do + allow(service).to receive(:get_token).and_return(blank_token_response) + end + + it 'raises error' do + expect { service.token }.to raise_error(Eps::BaseService::TokenError, 'Invalid token response') + end + end + end + + context 'when cache exists' do + before do + allow(Rails.cache).to receive(:fetch) + .with(described_class::REDIS_TOKEN_KEY, expires_in: described_class::REDIS_TOKEN_TTL) + .and_return('cached_token') + end + + it 'returns cached token' do + expect(service.send(:token)).to eq('cached_token') + end + end + end + + describe '#get_token' do + let(:config) { instance_double(Eps::Configuration) } + let(:jwt_wrapper) { instance_double(Eps::JwtWrapper) } + + before do + allow(Eps::Configuration).to receive(:instance).and_return(config) + allow(config).to receive_messages(access_token_url: 'http://test.url', grant_type: 'client_credentials', + scopes: 'test.scope', client_assertion_type: 'urn:test') + allow(Eps::JwtWrapper).to receive(:new).and_return(jwt_wrapper) + allow(jwt_wrapper).to receive(:sign_assertion).and_return('signed_jwt') + + allow(service).to receive(:perform).and_return(mock_token_response) + allow(service).to receive(:with_monitoring).and_yield + end + + it 'makes POST request with correct parameters' do + expected_params = URI.encode_www_form({ + grant_type: 'client_credentials', + scope: 'test.scope', + client_assertion_type: 'urn:test', + client_assertion: 'signed_jwt' + }) + + expect(service).to receive(:perform).with( + :post, + 'http://test.url', + expected_params, + { 'Content-Type' => 'application/x-www-form-urlencoded' } + ) + + service.get_token + end + end end diff --git a/modules/vaos/spec/services/eps/configuration_spec.rb b/modules/vaos/spec/services/eps/configuration_spec.rb index fbfd6d068a6..50f4b8e37ee 100644 --- a/modules/vaos/spec/services/eps/configuration_spec.rb +++ b/modules/vaos/spec/services/eps/configuration_spec.rb @@ -17,7 +17,7 @@ context 'when VAOS_DEBUG is set and not in production' do it 'sets up the connection with a stdout logger to display requests in curl format' do allow(ENV).to receive(:[]).and_call_original - allow(ENV).to receive(:[]).with('VAOS_DEBUG').and_return('true') + allow(ENV).to receive(:[]).with('VAOS_EPS_DEBUG').and_return('true') allow(Rails.env).to receive(:production?).and_return(false) conn = Eps::Configuration.instance.connection From eff3d537d977c9b8086060929c6ac1df13ec3421 Mon Sep 17 00:00:00 2001 From: Rockwell Windsor Rice <129893414+rockwellwindsor-va@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:26:16 -0600 Subject: [PATCH 22/22] FIX-api-42279-poa-rswag-tests-failures (#19626) * Adjustments made to fix failing tests modified: modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb --- modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb b/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb index 64874f85f08..c60a6d14227 100644 --- a/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb +++ b/modules/claims_api/spec/requests/v1/forms/rswag_2122_spec.rb @@ -6,9 +6,10 @@ require_relative '../../../rails_helper' require_relative '../../../support/swagger_shared_components/v1' require 'bgs/power_of_attorney_verifier' +require 'bgs_service/person_web_service' Rspec.describe 'Power of Attorney', openapi_spec: 'modules/claims_api/app/swagger/claims_api/v1/swagger.json' do - let(:pws) { ClaimsApi::LocalBGS } + let(:pws) { ClaimsApi::PersonWebService } path '/forms/2122' do get 'Gets schema for POA form.' do