From 82b8e83ca635bd27954565e2c29c77e0a75b3fc0 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 22 Apr 2024 12:50:25 -0300 Subject: fix #8398 --- packages/taler-util/src/http-client/challenger.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'packages/taler-util/src/http-client') diff --git a/packages/taler-util/src/http-client/challenger.ts b/packages/taler-util/src/http-client/challenger.ts index 8d23ed273..aa530570d 100644 --- a/packages/taler-util/src/http-client/challenger.ts +++ b/packages/taler-util/src/http-client/challenger.ts @@ -1,6 +1,7 @@ import { HttpRequestLibrary, readTalerErrorResponse } from "../http-common.js"; import { HttpStatusCode } from "../http-status-codes.js"; import { createPlatformHttpLib } from "../http.js"; +import { TalerCoreBankCacheEviction } from "../index.node.js"; import { LibtoolVersion } from "../libtool-version.js"; import { FailCasesByMethod, @@ -22,24 +23,31 @@ import { codecForChallengerTermsOfServiceResponse, codecForInvalidPinResponse, } from "./types.js"; -import { makeBearerTokenAuthHeader } from "./utils.js"; +import { CacheEvictor, makeBearerTokenAuthHeader, nullEvictor } from "./utils.js"; export type ChallengerResultByMethod = ResultByMethod; export type ChallengerErrorsByMethod = FailCasesByMethod; +export enum ChallengerCacheEviction { + CREATE_CHALLENGE, +} + /** */ export class ChallengerHttpClient { httpLib: HttpRequestLibrary; + cacheEvictor: CacheEvictor; public readonly PROTOCOL_VERSION = "1:0:0"; constructor( readonly baseUrl: string, httpClient?: HttpRequestLibrary, - ) { + cacheEvictor?: CacheEvictor, + ) { this.httpLib = httpClient ?? createPlatformHttpLib(); + this.cacheEvictor = cacheEvictor ?? nullEvictor; } isCompatible(version: string): boolean { @@ -146,8 +154,12 @@ export class ChallengerHttpClient { redirect: "manual", }); switch (resp.status) { - case HttpStatusCode.Ok: + case HttpStatusCode.Ok: { + await this.cacheEvictor.notifySuccess( + ChallengerCacheEviction.CREATE_CHALLENGE, + ); return opSuccessFromHttp(resp, codecForChallengeCreateResponse()); + } case HttpStatusCode.Found: const redirect = resp.headers.get("Location")!; return opFixedSuccess({ -- cgit v1.2.3