From 5d23eb36354d07508a015531f298b3e261bbafce Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 22 Mar 2022 21:16:38 +0100 Subject: wallet: improve error handling and error codes --- packages/taler-wallet-core/src/bank-api-client.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'packages/taler-wallet-core/src/bank-api-client.ts') 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, -- cgit v1.2.3