diff options
Diffstat (limited to 'packages/taler-util/src/bank-api-client.ts')
-rw-r--r-- | packages/taler-util/src/bank-api-client.ts | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/packages/taler-util/src/bank-api-client.ts b/packages/taler-util/src/bank-api-client.ts index 9c35af948..e1409087f 100644 --- a/packages/taler-util/src/bank-api-client.ts +++ b/packages/taler-util/src/bank-api-client.ts @@ -43,8 +43,11 @@ import { import { checkSuccessResponseOrThrow, createPlatformHttpLib, + expectSuccessResponseOrThrow, HttpRequestLibrary, readSuccessResponseJsonOrThrow, + readSuccessResponseTextOrThrow, + readTalerErrorResponse, } from "@gnu-taler/taler-util/http"; const logger = new Logger("bank-api-client.ts"); @@ -237,7 +240,7 @@ export class TalerCorebankApiClient { httpLib: HttpRequestLibrary; constructor( - private baseUrl: string, + public baseUrl: string, private args: BankAccessApiClientArgs = {}, ) { this.httpLib = args.httpClient ?? createPlatformHttpLib(); @@ -382,7 +385,7 @@ export class TalerCorebankApiClient { async createWithdrawalOperation( user: string, - amount: string, + amount: string | undefined, ): Promise<WithdrawalOperationInfo> { const url = new URL(`accounts/${user}/withdrawals`, this.baseUrl); const resp = await this.httpLib.fetch(url.href, { @@ -420,7 +423,7 @@ export class TalerCorebankApiClient { case HttpStatusCode.NotFound: return opKnownHttpFailure(resp.status, resp); default: - return opUnknownFailure(resp, await resp.text()); + return opUnknownFailure(resp, await readTalerErrorResponse(resp)); } } @@ -436,4 +439,20 @@ export class TalerCorebankApiClient { }); await readSuccessResponseJsonOrThrow(resp, codecForAny()); } + + async abortWithdrawalOperationV2( + username: string, + wopi: WithdrawalOperationInfo, + ): Promise<void> { + const url = new URL( + `accounts/${username}/withdrawals/${wopi.withdrawal_id}/abort`, + this.baseUrl, + ); + const resp = await this.httpLib.fetch(url.href, { + method: "POST", + body: {}, + headers: this.makeAuthHeader(), + }); + await expectSuccessResponseOrThrow(resp); + } } |