From 644157f50889d8594ee18b02c8b4776e51639ed5 Mon Sep 17 00:00:00 2001 From: Federico Mastrini Date: Mon, 29 Jan 2024 20:45:56 +0100 Subject: [PATCH] chore: [IOBP-523] Add missing `language` parameter in `calculateFees` request (#5453) --- .../handleWalletPaymentCalculateFees.test.ts | 7 +++++++ .../networking/handleWalletPaymentCalculateFees.ts | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ts/features/walletV3/payment/saga/networking/__tests__/handleWalletPaymentCalculateFees.test.ts b/ts/features/walletV3/payment/saga/networking/__tests__/handleWalletPaymentCalculateFees.test.ts index 57d99b9c539..9488931478e 100644 --- a/ts/features/walletV3/payment/saga/networking/__tests__/handleWalletPaymentCalculateFees.test.ts +++ b/ts/features/walletV3/payment/saga/networking/__tests__/handleWalletPaymentCalculateFees.test.ts @@ -10,6 +10,7 @@ import { walletPaymentCalculateFees } from "../../../store/actions/networking"; import { handleWalletPaymentCalculateFees } from "../handleWalletPaymentCalculateFees"; import { CalculateFeeRequest } from "../../../../../../../definitions/pagopa/ecommerce/CalculateFeeRequest"; import { selectWalletPaymentSessionToken } from "../../../store/selectors"; +import { preferredLanguageSelector } from "../../../../../../store/reducers/persistedPreferences"; describe("Test handleWalletPaymentCalculateFees saga", () => { const calculateFeesPayload: CalculateFeeRequest & { @@ -41,6 +42,8 @@ describe("Test handleWalletPaymentCalculateFees saga", () => { walletPaymentCalculateFees.request(calculateFeesPayload) ) .next() + .select(preferredLanguageSelector) + .next("IT") .select(selectWalletPaymentSessionToken) .next(T_SESSION_TOKEN) .call( @@ -66,6 +69,8 @@ describe("Test handleWalletPaymentCalculateFees saga", () => { walletPaymentCalculateFees.request(calculateFeesPayload) ) .next() + .select(preferredLanguageSelector) + .next("IT") .select(selectWalletPaymentSessionToken) .next(T_SESSION_TOKEN) .call( @@ -94,6 +99,8 @@ describe("Test handleWalletPaymentCalculateFees saga", () => { walletPaymentCalculateFees.request(calculateFeesPayload) ) .next() + .select(preferredLanguageSelector) + .next("IT") .select(selectWalletPaymentSessionToken) .next(T_SESSION_TOKEN) .call( diff --git a/ts/features/walletV3/payment/saga/networking/handleWalletPaymentCalculateFees.ts b/ts/features/walletV3/payment/saga/networking/handleWalletPaymentCalculateFees.ts index 46cc2fc6753..dc6450a9d6d 100644 --- a/ts/features/walletV3/payment/saga/networking/handleWalletPaymentCalculateFees.ts +++ b/ts/features/walletV3/payment/saga/networking/handleWalletPaymentCalculateFees.ts @@ -1,8 +1,11 @@ import * as E from "fp-ts/lib/Either"; import * as O from "fp-ts/lib/Option"; +import { pipe } from "fp-ts/lib/function"; +import { toUpper } from "lodash"; import { call, put, select } from "typed-redux-saga/macro"; import { ActionType } from "typesafe-actions"; import { CalculateFeeResponse } from "../../../../../../definitions/pagopa/ecommerce/CalculateFeeResponse"; +import { preferredLanguageSelector } from "../../../../../store/reducers/persistedPreferences"; import { SagaCallReturnType } from "../../../../../types/utils"; import { getGenericError, getNetworkError } from "../../../../../utils/errors"; import { readablePrivacyReport } from "../../../../../utils/reporters"; @@ -19,6 +22,13 @@ export function* handleWalletPaymentCalculateFees( action: ActionType<(typeof walletPaymentCalculateFees)["request"]> ) { try { + const preferredLanguageOption = yield* select(preferredLanguageSelector); + const language = pipe( + preferredLanguageOption, + O.map(toUpper), + O.getOrElse(() => "IT") + ); + const sessionToken = yield* getOrFetchWalletSessionToken(); if (sessionToken === undefined) { @@ -30,7 +40,7 @@ export function* handleWalletPaymentCalculateFees( return; } - const { paymentMethodId, ...body } = action.payload; + const { paymentMethodId, ...body } = { ...action.payload, language }; const calculateFeesRequest = calculateFees({ eCommerceSessionToken: sessionToken, id: paymentMethodId,