summaryrefslogtreecommitdiff
path: root/packages/taler-util/src/bank-api-client.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/bank-api-client.ts')
-rw-r--r--packages/taler-util/src/bank-api-client.ts25
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);
+ }
}