aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src/http-client/bank-conversion.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/http-client/bank-conversion.ts')
-rw-r--r--packages/taler-util/src/http-client/bank-conversion.ts13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/taler-util/src/http-client/bank-conversion.ts b/packages/taler-util/src/http-client/bank-conversion.ts
index 91d07b11b..ea247ccfc 100644
--- a/packages/taler-util/src/http-client/bank-conversion.ts
+++ b/packages/taler-util/src/http-client/bank-conversion.ts
@@ -39,7 +39,7 @@ import {
codecForCashoutConversionResponse,
codecForConversionBankConfig,
} from "./types.js";
-import { makeBearerTokenAuthHeader } from "./utils.js";
+import { CacheEvictor, makeBearerTokenAuthHeader, nullEvictor } from "./utils.js";
export type TalerBankConversionResultByMethod<
prop extends keyof TalerBankConversionHttpClient,
@@ -48,6 +48,10 @@ export type TalerBankConversionErrorsByMethod<
prop extends keyof TalerBankConversionHttpClient,
> = FailCasesByMethod<TalerBankConversionHttpClient, prop>;
+export enum TalerBankConversionCacheEviction {
+ UPDATE_RATE,
+}
+
/**
* The API is used by the wallets.
*/
@@ -55,12 +59,15 @@ export class TalerBankConversionHttpClient {
public readonly PROTOCOL_VERSION = "0:0:0";
httpLib: HttpRequestLibrary;
+ cacheEvictor: CacheEvictor<TalerBankConversionCacheEviction>;
constructor(
readonly baseUrl: string,
httpClient?: HttpRequestLibrary,
+ cacheEvictor?: CacheEvictor<TalerBankConversionCacheEviction>,
) {
this.httpLib = httpClient ?? createPlatformHttpLib();
+ this.cacheEvictor = cacheEvictor ?? nullEvictor;
}
isCompatible(version: string): boolean {
@@ -195,8 +202,10 @@ export class TalerBankConversionHttpClient {
body,
});
switch (resp.status) {
- case HttpStatusCode.NoContent:
+ case HttpStatusCode.NoContent: {
+ this.cacheEvictor.notifySuccess(TalerBankConversionCacheEviction.UPDATE_RATE);
return opEmptySuccess(resp);
+ }
case HttpStatusCode.Unauthorized:
return opKnownHttpFailure(resp.status, resp);
case HttpStatusCode.NotImplemented: