taler-typescript-core

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

commit 361c2e03ec7e8020657173d00dabab640f018709
parent c1373e6c06bd93a50bde81d3b70c4be6e7239287
Author: Florian Dold <florian@dold.me>
Date:   Wed, 31 Jan 2024 01:50:57 +0100

util: fix confirming withdrawal ops

This addresses a breaking change in libeufin-bank

Diffstat:
Mpackages/taler-util/src/bank-api-client.ts | 22+++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/packages/taler-util/src/bank-api-client.ts b/packages/taler-util/src/bank-api-client.ts @@ -29,10 +29,13 @@ import { codecForAny, codecForString, encodeCrock, - generateIban, getRandomBytes, + HttpStatusCode, j2s, Logger, + opEmptySuccess, + opKnownHttpFailure, + opUnknownFailure, stringToBytes, TalerError, TalerErrorCode, @@ -398,9 +401,9 @@ export class TalerCorebankApiClient { async confirmWithdrawalOperation( username: string, wopi: ConfirmWithdrawalArgs, - ): Promise<void> { + ) { const url = new URL( - `withdrawals/${wopi.withdrawalOperationId}/confirm`, + `accounts/${username}/withdrawals/${wopi.withdrawalOperationId}/confirm`, this.baseUrl, ); logger.info(`confirming withdrawal operation via ${url.href}`); @@ -410,10 +413,15 @@ export class TalerCorebankApiClient { headers: this.makeAuthHeader(), }); - logger.info(`response status ${resp.status}`); - // const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny()); - - // FIXME: We don't check the status here! + switch (resp.status) { + case HttpStatusCode.Ok: + case HttpStatusCode.NoContent: + return opEmptySuccess(resp); + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + default: + return opUnknownFailure(resp, await resp.text()); + } } async abortWithdrawalOperation(wopi: WithdrawalOperationInfo): Promise<void> {