summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/bank-api-client.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/bank-api-client.ts')
-rw-r--r--packages/taler-wallet-core/src/bank-api-client.ts19
1 files changed, 13 insertions, 6 deletions
diff --git a/packages/taler-wallet-core/src/bank-api-client.ts b/packages/taler-wallet-core/src/bank-api-client.ts
index 128e9a7a7..14bf07174 100644
--- a/packages/taler-wallet-core/src/bank-api-client.ts
+++ b/packages/taler-wallet-core/src/bank-api-client.ts
@@ -31,7 +31,9 @@ import {
getRandomBytes,
j2s,
Logger,
+ TalerErrorCode,
} from "@gnu-taler/taler-util";
+import { TalerError } from "./errors.js";
import {
HttpRequestLibrary,
readSuccessResponseJsonOrErrorCode,
@@ -104,15 +106,20 @@ export namespace BankApi {
let paytoUri = `payto://x-taler-bank/localhost/${username}`;
if (resp.status !== 200 && resp.status !== 202) {
logger.error(`${j2s(await resp.json())}`);
- throw new Error();
- }
- const respJson = await readSuccessResponseJsonOrThrow(resp, codecForAny());
- // LibEuFin demobank returns payto URI in response
- if (respJson.paytoUri) {
- paytoUri = respJson.paytoUri;
+ throw TalerError.fromDetail(
+ TalerErrorCode.GENERIC_UNEXPECTED_REQUEST_ERROR,
+ {
+ httpStatusCode: resp.status,
+ },
+ );
}
try {
+ // Pybank has no body, thus this might throw.
const respJson = await resp.json();
+ // LibEuFin demobank returns payto URI in response
+ if (respJson.paytoUri) {
+ paytoUri = respJson.paytoUri;
+ }
} catch (e) {}
return {
password,