taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit fb0b62a145694a0a05fa22731a9e9634ad965cde
parent a2011cb08bfbea3d82b0ec680a6836a6e09c8e19
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed,  5 Feb 2025 15:30:10 -0300

fix #9498

Diffstat:
Mpackages/bank-ui/src/pages/admin/AccountForm.tsx | 4++--
Mpackages/taler-util/src/http-client/bank-core.ts | 21+++++++++++++++++++++
Mpackages/taler-util/src/types-taler-corebank.ts | 2+-
3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/packages/bank-ui/src/pages/admin/AccountForm.tsx b/packages/bank-ui/src/pages/admin/AccountForm.tsx @@ -254,7 +254,7 @@ export function AccountForm<PurposeType extends keyof ChangeByPurposeType>({ default: assertUnreachable(cashoutPaytoType); } - const cashoutURI = !cashout ? undefined : stringifyPaytoUri(cashout); + const cashoutURI = !cashout ? null : stringifyPaytoUri(cashout); let internal; if (newForm.payto_uri) switch (paytoType) { @@ -292,7 +292,7 @@ export function AccountForm<PurposeType extends keyof ChangeByPurposeType>({ }), debit_threshold: threshold ?? config.default_debit_threshold, min_cashout: minCashout, - cashout_payto_uri: cashoutURI, + cashout_payto_uri: cashoutURI === null ? undefined : cashoutURI, payto_uri: internalURI, is_public: newForm.isPublic, is_taler_exchange: newForm.isExchange, diff --git a/packages/taler-util/src/http-client/bank-core.ts b/packages/taler-util/src/http-client/bank-core.ts @@ -301,6 +301,9 @@ export class TalerCoreBankHttpClient { }); switch (resp.status) { case HttpStatusCode.Accepted: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.DELETE_ACCOUNT, + ); return opKnownAlternativeFailure( resp, resp.status, @@ -354,6 +357,9 @@ export class TalerCoreBankHttpClient { codecForChallenge(), ); case HttpStatusCode.NoContent: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.UPDATE_ACCOUNT, + ); return opEmptySuccess(resp); case HttpStatusCode.Unauthorized: return opKnownHttpFailure(resp.status, resp); @@ -615,6 +621,9 @@ export class TalerCoreBankHttpClient { }); switch (resp.status) { case HttpStatusCode.Ok: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.CREATE_TRANSACTION, + ); return opSuccessFromHttp(resp, codecForCreateTransactionResponse()); case HttpStatusCode.Accepted: return opKnownAlternativeFailure( @@ -672,6 +681,9 @@ export class TalerCoreBankHttpClient { }); switch (resp.status) { case HttpStatusCode.Ok: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.CREATE_WITHDRAWAL, + ); return opSuccessFromHttp( resp, codecForBankAccountCreateWithdrawalResponse(), @@ -718,6 +730,9 @@ export class TalerCoreBankHttpClient { codecForChallenge(), ); case HttpStatusCode.NoContent: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.CONFIRM_WITHDRAWAL, + ); return opEmptySuccess(resp); //FIXME: missing in docs case HttpStatusCode.BadRequest: @@ -763,6 +778,9 @@ export class TalerCoreBankHttpClient { }); switch (resp.status) { case HttpStatusCode.NoContent: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.ABORT_WITHDRAWAL, + ); return opEmptySuccess(resp); //FIXME: missing in docs case HttpStatusCode.BadRequest: @@ -834,6 +852,9 @@ export class TalerCoreBankHttpClient { }); switch (resp.status) { case HttpStatusCode.Ok: + await this.cacheEvictor.notifySuccess( + TalerCoreBankCacheEviction.CREATE_CASHOUT, + ); return opSuccessFromHttp(resp, codecForCashoutPending()); case HttpStatusCode.Accepted: return opKnownAlternativeFailure( diff --git a/packages/taler-util/src/types-taler-corebank.ts b/packages/taler-util/src/types-taler-corebank.ts @@ -331,7 +331,7 @@ export interface AccountReconfiguration { // when the user wants to convert the regional currency // back to fiat currency outside bank. // Only admin can change this property if not allowed in config - cashout_payto_uri?: PaytoString; + cashout_payto_uri?: PaytoString | null; // If present, change the legal name associated with $username. // Only admin can change this property if not allowed in config