summaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/context/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/demobank-ui/src/context/config.ts')
-rw-r--r--packages/demobank-ui/src/context/config.ts28
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 = ({