diff options
Diffstat (limited to 'packages/demobank-ui/src/context/config.ts')
-rw-r--r-- | packages/demobank-ui/src/context/config.ts | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/packages/demobank-ui/src/context/config.ts b/packages/demobank-ui/src/context/config.ts index 1cabab51c..529108275 100644 --- a/packages/demobank-ui/src/context/config.ts +++ b/packages/demobank-ui/src/context/config.ts @@ -16,7 +16,13 @@ import { AccessToken, + AmountJson, + HttpStatusCode, LibtoolVersion, + OperationFail, + OperationOk, + TalerBankConversionApi, + TalerBankConversionHttpClient, TalerCorebankApi, TalerCoreBankHttpClient, TalerError, @@ -44,6 +50,7 @@ import { import { revalidateBusinessAccounts, revalidateCashouts, + revalidateConversionInfo, } from "../hooks/circuit.js"; /** @@ -89,7 +96,7 @@ export const BankCoreApiProvider = ({ const [checked, setChecked] = useState<ConfigResult>(); const { i18n } = useTranslationContext(); const url = new URL(baseUrl); - const api = new CacheAwareApi(url.href, new BrowserHttpLib()); + const api = new CacheAwareTalerCoreBankHttpClient(url.href, new BrowserHttpLib()); useEffect(() => { api .getConfig() @@ -149,8 +156,20 @@ export const BankCoreApiProvider = ({ children, }); }; +class CacheAwareTalerBankConversionHttpClient extends TalerBankConversionHttpClient { + constructor(baseUrl: string, httpClient?: HttpRequestLibrary) { + super(baseUrl, httpClient); + } + async updateConversionRate(auth: AccessToken, body: TalerBankConversionApi.ConversionRate) { + const resp = await super.updateConversionRate(auth, body); + if (resp.type === "ok") { + await revalidateConversionInfo(); + } + return resp + } +} -export class CacheAwareApi extends TalerCoreBankHttpClient { +class CacheAwareTalerCoreBankHttpClient extends TalerCoreBankHttpClient { constructor(baseUrl: string, httpClient?: HttpRequestLibrary) { super(baseUrl, httpClient); } @@ -223,6 +242,11 @@ export class CacheAwareApi extends TalerCoreBankHttpClient { } return resp; } + + getConversionInfoAPI(): TalerBankConversionHttpClient { + const api = super.getConversionInfoAPI(); + return new CacheAwareTalerBankConversionHttpClient(api.baseUrl, this.httpLib) + } } export const BankCoreApiProviderTesting = ({ |