gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 01/02: remove http resp from operation


From: gnunet
Subject: [taler-wallet-core] 01/02: remove http resp from operation
Date: Fri, 08 Mar 2024 16:19:28 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit b3ae213bc5987fbb6a2ce5c08d626f9f65508b03
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Fri Mar 8 10:08:15 2024 -0300

    remove http resp from operation
---
 .../src/pages/AntiMoneyLaunderingForm.tsx          |  5 ---
 packages/demobank-ui/src/hooks/regional.ts         |  6 +--
 .../taler-harness/src/integrationtests/test-otp.ts |  7 ++--
 .../src/integrationtests/test-payment-template.ts  |  2 +-
 packages/taler-util/src/MerchantApiClient.ts       |  6 +--
 packages/taler-util/src/errors.ts                  |  5 +++
 .../taler-util/src/http-client/authentication.ts   |  4 +-
 .../taler-util/src/http-client/bank-conversion.ts  |  8 ++--
 packages/taler-util/src/http-client/bank-core.ts   | 46 +++++++++++-----------
 .../taler-util/src/http-client/bank-integration.ts |  8 ++--
 .../taler-util/src/http-client/bank-revenue.ts     |  4 +-
 packages/taler-util/src/http-client/bank-wire.ts   | 14 +++----
 packages/taler-util/src/http-client/exchange.ts    | 14 +++----
 packages/taler-util/src/operation.ts               | 39 +++++++-----------
 14 files changed, 80 insertions(+), 88 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/pages/AntiMoneyLaunderingForm.tsx 
b/packages/aml-backoffice-ui/src/pages/AntiMoneyLaunderingForm.tsx
index bab672192..c42b1e7af 100644
--- a/packages/aml-backoffice-ui/src/pages/AntiMoneyLaunderingForm.tsx
+++ b/packages/aml-backoffice-ui/src/pages/AntiMoneyLaunderingForm.tsx
@@ -121,7 +121,6 @@ export function parseJustification(
     const info = codecForSimpleFormMetadata().decode(justification);
     if (!info.id) {
       return {
-        httpResp: undefined as any,
         type: "fail",
         case: "id-not-found",
         detail: {} as any,
@@ -129,7 +128,6 @@ export function parseJustification(
     }
     if (!info.version) {
       return {
-        httpResp: undefined as any,
         type: "fail",
         case: "version-not-found",
         detail: {} as any,
@@ -140,14 +138,12 @@ export function parseJustification(
     });
     if (!found) {
       return {
-        httpResp: undefined as any,
         type: "fail",
         case: "form-not-found",
         detail: {} as any,
       };
     }
     return {
-      httpResp: undefined as any,
       type: "ok",
       body: {
         justification,
@@ -156,7 +152,6 @@ export function parseJustification(
     };
   } catch (e) {
     return {
-      httpResp: undefined as any,
       type: "fail",
       case: "not-json",
       detail: {} as any,
diff --git a/packages/demobank-ui/src/hooks/regional.ts 
b/packages/demobank-ui/src/hooks/regional.ts
index a9ebb30a2..3469bf501 100644
--- a/packages/demobank-ui/src/hooks/regional.ts
+++ b/packages/demobank-ui/src/hooks/regional.ts
@@ -291,7 +291,7 @@ export function useOnePendingCashouts(account: string) {
       return list;
     }
     const pendingCashout = list.body.cashouts.length > 0 ? 
list.body.cashouts[0] : undefined;
-    if (!pendingCashout) return opFixedSuccess(list.httpResp, undefined);
+    if (!pendingCashout) return opFixedSuccess(undefined);
     const cashoutInfo = await api.getCashoutById(
       { username, token },
       pendingCashout.cashout_id,
@@ -299,7 +299,7 @@ export function useOnePendingCashouts(account: string) {
     if (cashoutInfo.type !== "ok") {
       return cashoutInfo;
     }
-    return opFixedSuccess(list.httpResp, {
+    return opFixedSuccess({
       ...cashoutInfo.body,
       id: pendingCashout.cashout_id,
     });
@@ -357,7 +357,7 @@ export function useCashouts(account: string) {
       }),
     );
     const cashouts = all.filter(notUndefined);
-    return { type: "ok" as const, body: { cashouts }, httpResp: list.httpResp 
};
+    return { type: "ok" as const, body: { cashouts }};
   }
   const { data, error } = useSWR<
     | OperationOk<{ cashouts: CashoutWithId[] }>
diff --git a/packages/taler-harness/src/integrationtests/test-otp.ts 
b/packages/taler-harness/src/integrationtests/test-otp.ts
index 3636b1f47..d0aeba095 100644
--- a/packages/taler-harness/src/integrationtests/test-otp.ts
+++ b/packages/taler-harness/src/integrationtests/test-otp.ts
@@ -50,7 +50,7 @@ export async function runOtpTest(t: GlobalTestState) {
     otp_device_id: "mydevice",
     otp_key: randomRfc3548Base32Key(),
   });
-  narrowOpSuccessOrThrow(createOtpRes);
+  narrowOpSuccessOrThrow("createOtpDevice", createOtpRes);
 
   const createTemplateRes = await merchantClient.createTemplate({
     template_description: "my template",
@@ -65,10 +65,11 @@ export async function runOtpTest(t: GlobalTestState) {
       ),
     },
   });
-  narrowOpSuccessOrThrow(createTemplateRes);
+  narrowOpSuccessOrThrow("createTemplate", createTemplateRes);
 
   const getTemplateResp = await merchantClient.getTemplate("tpl1");
-  narrowOpSuccessOrThrow(getTemplateResp);
+  narrowOpSuccessOrThrow("getTemplate", getTemplateResp);
+  
   console.log(`template: ${j2s(getTemplateResp.body)}`);
 
   const wres = await withdrawViaBankV2(t, {
diff --git 
a/packages/taler-harness/src/integrationtests/test-payment-template.ts 
b/packages/taler-harness/src/integrationtests/test-payment-template.ts
index c9f1caacd..c3ab5ffc8 100644
--- a/packages/taler-harness/src/integrationtests/test-payment-template.ts
+++ b/packages/taler-harness/src/integrationtests/test-payment-template.ts
@@ -55,7 +55,7 @@ export async function runPaymentTemplateTest(t: 
GlobalTestState) {
       summary: "hello, I'm a summary",
     },
   });
-  narrowOpSuccessOrThrow(createTemplateRes);
+  narrowOpSuccessOrThrow("createTemplate", createTemplateRes);
 
   // Withdraw digital cash into the wallet.
 
diff --git a/packages/taler-util/src/MerchantApiClient.ts 
b/packages/taler-util/src/MerchantApiClient.ts
index 8afacfa46..a71887940 100644
--- a/packages/taler-util/src/MerchantApiClient.ts
+++ b/packages/taler-util/src/MerchantApiClient.ts
@@ -44,7 +44,7 @@ import {
   ResultByMethod,
   opEmptySuccess,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "./operation.js";
 import { AmountString } from "./taler-types.js";
@@ -318,7 +318,7 @@ export class MerchantApiClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForAny());
+        return opSuccessFromHttp(resp, codecForAny());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -341,7 +341,7 @@ export class MerchantApiClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForMerchantConfig());
+        return opSuccessFromHttp(resp, codecForMerchantConfig());
       default:
         return opUnknownFailure(resp, await resp.text());
     }
diff --git a/packages/taler-util/src/errors.ts 
b/packages/taler-util/src/errors.ts
index 3ada34d63..c5110bda8 100644
--- a/packages/taler-util/src/errors.ts
+++ b/packages/taler-util/src/errors.ts
@@ -108,6 +108,11 @@ export interface DetailsMap {
      */
     contentType?: string;
   };
+  [TalerErrorCode.GENERIC_CLIENT_INTERNAL_ERROR]: {
+    operation: string;
+    error: string;
+    detail: TalerErrorDetail | undefined;
+  }
   [TalerErrorCode.WALLET_EXCHANGE_COIN_SIGNATURE_INVALID]: empty;
   [TalerErrorCode.WALLET_WITHDRAWAL_GROUP_INCOMPLETE]: {
     numErrors: number;
diff --git a/packages/taler-util/src/http-client/authentication.ts 
b/packages/taler-util/src/http-client/authentication.ts
index b17ede458..e8ef6a274 100644
--- a/packages/taler-util/src/http-client/authentication.ts
+++ b/packages/taler-util/src/http-client/authentication.ts
@@ -27,7 +27,7 @@ import { LibtoolVersion } from "../libtool-version.js";
 import {
   opEmptySuccess,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import {
@@ -74,7 +74,7 @@ export class TalerAuthenticationHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForTokenSuccessResponse());
+        return opSuccessFromHttp(resp, codecForTokenSuccessResponse());
       //FIXME: missing in docs
       case HttpStatusCode.Unauthorized:
         return opKnownHttpFailure(resp.status, resp);
diff --git a/packages/taler-util/src/http-client/bank-conversion.ts 
b/packages/taler-util/src/http-client/bank-conversion.ts
index 5242a5fc6..91d07b11b 100644
--- a/packages/taler-util/src/http-client/bank-conversion.ts
+++ b/packages/taler-util/src/http-client/bank-conversion.ts
@@ -27,7 +27,7 @@ import {
   ResultByMethod,
   opEmptySuccess,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import { TalerErrorCode } from "../taler-error-codes.js";
@@ -79,7 +79,7 @@ export class TalerBankConversionHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForConversionBankConfig());
+        return opSuccessFromHttp(resp, codecForConversionBankConfig());
       case HttpStatusCode.NotImplemented:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -107,7 +107,7 @@ export class TalerBankConversionHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCashinConversionResponse());
+        return opSuccessFromHttp(resp, codecForCashinConversionResponse());
       case HttpStatusCode.BadRequest: {
         const body = await resp.json();
         const details = codecForTalerErrorDetail().decode(body);
@@ -154,7 +154,7 @@ export class TalerBankConversionHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCashoutConversionResponse());
+        return opSuccessFromHttp(resp, codecForCashoutConversionResponse());
       case HttpStatusCode.BadRequest: {
         const body = await resp.json();
         const details = codecForTalerErrorDetail().decode(body);
diff --git a/packages/taler-util/src/http-client/bank-core.ts 
b/packages/taler-util/src/http-client/bank-core.ts
index 90ba88b6a..40e29dcef 100644
--- a/packages/taler-util/src/http-client/bank-core.ts
+++ b/packages/taler-util/src/http-client/bank-core.ts
@@ -35,7 +35,7 @@ import {
   ResultByMethod,
   opEmptySuccess,
   opFixedSuccess,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import { TalerAuthenticationHttpClient } from "./authentication.js";
@@ -115,7 +115,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCoreBankConfig());
+        return opSuccessFromHttp(resp, codecForCoreBankConfig());
       default:
         return opUnknownFailure(resp, await resp.text());
     }
@@ -143,7 +143,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForRegisterAccountResponse());
+        return opSuccessFromHttp(resp, codecForRegisterAccountResponse());
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Unauthorized:
@@ -339,11 +339,11 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForPublicAccountsResponse());
+        return opSuccessFromHttp(resp, codecForPublicAccountsResponse());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { public_accounts: [] });
+        return opFixedSuccess({ public_accounts: [] });
       case HttpStatusCode.NotFound:
-        return opFixedSuccess(resp, { public_accounts: [] });
+        return opFixedSuccess({ public_accounts: [] });
       default:
         return opUnknownFailure(resp, await resp.text());
     }
@@ -371,9 +371,9 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForListBankAccountsResponse());
+        return opSuccessFromHttp(resp, codecForListBankAccountsResponse());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { accounts: [] });
+        return opFixedSuccess({ accounts: [] });
       case HttpStatusCode.Unauthorized:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -395,7 +395,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForAccountData());
+        return opSuccessFromHttp(resp, codecForAccountData());
       case HttpStatusCode.Unauthorized:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.NotFound:
@@ -428,9 +428,9 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForBankAccountTransactionsResponse());
+        return opSuccessFromHttp(resp, 
codecForBankAccountTransactionsResponse());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { transactions: [] });
+        return opFixedSuccess({ transactions: [] });
       case HttpStatusCode.Unauthorized:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.NotFound:
@@ -457,7 +457,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForBankAccountTransactionInfo());
+        return opSuccessFromHttp(resp, codecForBankAccountTransactionInfo());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Unauthorized:
@@ -487,7 +487,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCreateTransactionResponse());
+        return opSuccessFromHttp(resp, codecForCreateTransactionResponse());
       case HttpStatusCode.Accepted:
         return opKnownAlternativeFailure(
           resp,
@@ -541,7 +541,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForBankAccountCreateWithdrawalResponse());
+        return opSuccessFromHttp(resp, 
codecForBankAccountCreateWithdrawalResponse());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Conflict:
@@ -656,7 +656,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForWithdrawalPublicInfo());
+        return opSuccessFromHttp(resp, codecForWithdrawalPublicInfo());
       //FIXME: missing in docs
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
@@ -691,7 +691,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCashoutPending());
+        return opSuccessFromHttp(resp, codecForCashoutPending());
       case HttpStatusCode.Accepted:
         return opKnownAlternativeFailure(
           resp,
@@ -750,7 +750,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCashoutStatusResponse());
+        return opSuccessFromHttp(resp, codecForCashoutStatusResponse());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.NotImplemented:
@@ -775,9 +775,9 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForCashouts());
+        return opSuccessFromHttp(resp, codecForCashouts());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { cashouts: [] });
+        return opFixedSuccess({ cashouts: [] });
       case HttpStatusCode.NotImplemented:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -800,9 +800,9 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForGlobalCashouts());
+        return opSuccessFromHttp(resp, codecForGlobalCashouts());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { cashouts: [] });
+        return opFixedSuccess({ cashouts: [] });
       case HttpStatusCode.NotImplemented:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -831,7 +831,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForTanTransmission());
+        return opSuccessFromHttp(resp, codecForTanTransmission());
       case HttpStatusCode.Unauthorized:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.NotFound:
@@ -930,7 +930,7 @@ export class TalerCoreBankHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForMonitorResponse());
+        return opSuccessFromHttp(resp, codecForMonitorResponse());
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Unauthorized:
diff --git a/packages/taler-util/src/http-client/bank-integration.ts 
b/packages/taler-util/src/http-client/bank-integration.ts
index 938249daf..a224c1f09 100644
--- a/packages/taler-util/src/http-client/bank-integration.ts
+++ b/packages/taler-util/src/http-client/bank-integration.ts
@@ -24,7 +24,7 @@ import {
   opEmptySuccess,
   opKnownHttpFailure,
   opKnownTalerFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import { TalerErrorCode } from "../taler-error-codes.js";
@@ -77,7 +77,7 @@ export class TalerBankIntegrationHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForIntegrationBankConfig());
+        return opSuccessFromHttp(resp, codecForIntegrationBankConfig());
       default:
         return opUnknownFailure(resp, await resp.text());
     }
@@ -106,7 +106,7 @@ export class TalerBankIntegrationHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForBankWithdrawalOperationStatus());
+        return opSuccessFromHttp(resp, 
codecForBankWithdrawalOperationStatus());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       default:
@@ -129,7 +129,7 @@ export class TalerBankIntegrationHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForBankWithdrawalOperationPostResponse());
+        return opSuccessFromHttp(resp, 
codecForBankWithdrawalOperationPostResponse());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Conflict: {
diff --git a/packages/taler-util/src/http-client/bank-revenue.ts 
b/packages/taler-util/src/http-client/bank-revenue.ts
index fb90f9c1c..3b6b3c258 100644
--- a/packages/taler-util/src/http-client/bank-revenue.ts
+++ b/packages/taler-util/src/http-client/bank-revenue.ts
@@ -21,7 +21,7 @@ import {
   FailCasesByMethod,
   ResultByMethod,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import {
@@ -90,7 +90,7 @@ export class TalerRevenueHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForMerchantIncomingHistory());
+        return opSuccessFromHttp(resp, codecForMerchantIncomingHistory());
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Unauthorized:
diff --git a/packages/taler-util/src/http-client/bank-wire.ts 
b/packages/taler-util/src/http-client/bank-wire.ts
index ba68d26ef..54211fef7 100644
--- a/packages/taler-util/src/http-client/bank-wire.ts
+++ b/packages/taler-util/src/http-client/bank-wire.ts
@@ -22,7 +22,7 @@ import {
   ResultByMethod,
   opFixedSuccess,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import {
@@ -96,7 +96,7 @@ export class TalerWireGatewayHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForTransferResponse());
+        return opSuccessFromHttp(resp, codecForTransferResponse());
       //FIXME: show more details in docs
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
@@ -131,10 +131,10 @@ export class TalerWireGatewayHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForIncomingHistory());
+        return opSuccessFromHttp(resp, codecForIncomingHistory());
       //FIXME: account should not be returned or make it optional
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, {
+        return opFixedSuccess({
           incoming_transactions: [],
           credit_account: undefined,
         });
@@ -170,10 +170,10 @@ export class TalerWireGatewayHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForOutgoingHistory());
+        return opSuccessFromHttp(resp, codecForOutgoingHistory());
       //FIXME: account should not be returned or make it optional
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, {
+        return opFixedSuccess({
           outgoing_transactions: [],
           debit_account: undefined,
         });
@@ -208,7 +208,7 @@ export class TalerWireGatewayHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForAddIncomingResponse());
+        return opSuccessFromHttp(resp, codecForAddIncomingResponse());
       //FIXME: show more details in docs
       case HttpStatusCode.BadRequest:
         return opKnownHttpFailure(resp.status, resp);
diff --git a/packages/taler-util/src/http-client/exchange.ts 
b/packages/taler-util/src/http-client/exchange.ts
index 003410ddb..c61ba1f8d 100644
--- a/packages/taler-util/src/http-client/exchange.ts
+++ b/packages/taler-util/src/http-client/exchange.ts
@@ -9,7 +9,7 @@ import {
   opEmptySuccess,
   opFixedSuccess,
   opKnownHttpFailure,
-  opSuccess,
+  opSuccessFromHttp,
   opUnknownFailure,
 } from "../operation.js";
 import {
@@ -70,7 +70,7 @@ export class TalerExchangeHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForExchangeConfig());
+        return opSuccessFromHttp(resp, codecForExchangeConfig());
       default:
         return opUnknownFailure(resp, await resp.text());
     }
@@ -87,7 +87,7 @@ export class TalerExchangeHttpClient {
     });
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForExchangeKeys());
+        return opSuccessFromHttp(resp, codecForExchangeKeys());
       default:
         return opUnknownFailure(resp, await resp.text());
     }
@@ -123,9 +123,9 @@ export class TalerExchangeHttpClient {
 
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForAmlRecords());
+        return opSuccessFromHttp(resp, codecForAmlRecords());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { records: [] });
+        return opFixedSuccess({ records: [] });
       //this should be unauthorized
       case HttpStatusCode.Forbidden:
         return opKnownHttpFailure(resp.status, resp);
@@ -156,9 +156,9 @@ export class TalerExchangeHttpClient {
 
     switch (resp.status) {
       case HttpStatusCode.Ok:
-        return opSuccess(resp, codecForAmlDecisionDetails());
+        return opSuccessFromHttp(resp, codecForAmlDecisionDetails());
       case HttpStatusCode.NoContent:
-        return opFixedSuccess(resp, { aml_history: [], kyc_attributes: [] });
+        return opFixedSuccess({ aml_history: [], kyc_attributes: [] });
       //this should be unauthorized
       case HttpStatusCode.Forbidden:
         return opKnownHttpFailure(resp.status, resp);
diff --git a/packages/taler-util/src/operation.ts 
b/packages/taler-util/src/operation.ts
index 02cf70196..ecf4a020a 100644
--- a/packages/taler-util/src/operation.ts
+++ b/packages/taler-util/src/operation.ts
@@ -57,8 +57,6 @@ export function isOperationFail<T, E>(
 export interface OperationOk<BodyT> {
   type: "ok";
 
-  httpResp: HttpResponse;
-
   /**
    * Parsed response body.
    */
@@ -71,8 +69,6 @@ export interface OperationOk<BodyT> {
 export interface OperationFail<T> {
   type: "fail";
 
-  httpResp: HttpResponse;
-
   /**
    * Error case (either HTTP status code or TalerErrorCode)
    */
@@ -87,8 +83,6 @@ export interface OperationFail<T> {
 export interface OperationAlternative<T, B> {
   type: "fail";
 
-  httpResp: HttpResponse;
-
   case: T;
   body: B;
 }
@@ -102,24 +96,24 @@ export interface OperationFailWithBody<B> {
   body: B[OperationFailWithBody<B>["case"]];
 }
 
-export async function opSuccess<T>(
+export async function opSuccessFromHttp<T>(
   resp: HttpResponse,
   codec: Codec<T>,
 ): Promise<OperationOk<T>> {
   const body = await readSuccessResponseJsonOrThrow(resp, codec);
-  return { type: "ok" as const, body, httpResp: resp };
+  return { type: "ok" as const, body };
 }
 
 /**
  * Success case, but instead of the body we're returning a fixed response
  * to the client.
  */
-export function opFixedSuccess<T>(resp: HttpResponse, body: T): OperationOk<T> 
{
-  return { type: "ok" as const, body, httpResp: resp };
+export function opFixedSuccess<T>(body: T): OperationOk<T> {
+  return { type: "ok" as const, body };
 }
 
 export function opEmptySuccess(resp: HttpResponse): OperationOk<void> {
-  return { type: "ok" as const, body: void 0, httpResp: resp };
+  return { type: "ok" as const, body: void 0 };
 }
 
 export async function opKnownFailureWithBody<B>(
@@ -135,7 +129,7 @@ export async function opKnownAlternativeFailure<T extends 
HttpStatusCode, B>(
   codec: Codec<B>,
 ): Promise<OperationAlternative<T, B>> {
   const body = await readSuccessResponseJsonOrThrow(resp, codec);
-  return { type: "fail", case: s, body, httpResp: resp };
+  return { type: "fail", case: s, body };
 }
 
 export async function opKnownHttpFailure<T extends HttpStatusCode>(
@@ -143,7 +137,7 @@ export async function opKnownHttpFailure<T extends 
HttpStatusCode>(
   resp: HttpResponse,
 ): Promise<OperationFail<T>> {
   const detail = await readTalerErrorResponse(resp);
-  return { type: "fail", case: s, detail, httpResp: resp };
+  return { type: "fail", case: s, detail };
 }
 
 export async function opKnownTalerFailure<T extends TalerErrorCode>(
@@ -151,7 +145,7 @@ export async function opKnownTalerFailure<T extends 
TalerErrorCode>(
   resp: HttpResponse,
 ): Promise<OperationFail<T>> {
   const detail = await readTalerErrorResponse(resp);
-  return { type: "fail", case: s, detail, httpResp: resp };
+  return { type: "fail", case: s, detail };
 }
 
 export function opUnknownFailure(resp: HttpResponse, text: string): never {
@@ -171,24 +165,21 @@ export function opUnknownFailure(resp: HttpResponse, 
text: string): never {
  * Convenience function to throw an error if the operation is not a success.
  */
 export function narrowOpSuccessOrThrow<Body, ErrorEnum>(
+  opName: string,
   opRes: OperationResult<Body, ErrorEnum>,
 ): asserts opRes is OperationOk<Body> {
-  const httpResponse = opRes.httpResp;
   if (opRes.type !== "ok") {
     throw TalerError.fromDetail(
-      TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,
+      TalerErrorCode.GENERIC_CLIENT_INTERNAL_ERROR,
       {
-        requestUrl: httpResponse.requestUrl,
-        requestMethod: httpResponse.requestMethod,
-        httpStatusCode: httpResponse.status,
-        errorResponse:
+        operation: opName,
+        error: String(opRes.case),
+        detail:
           "detail" in opRes
             ? opRes.detail
-            : "body" in opRes
-              ? opRes.body
-              : undefined,
+            : undefined,
       },
-      `Unexpected HTTP status ${httpResponse.status} in response`,
+      `Operation ${opName} failed: ${String(opRes.case)}`,
     );
   }
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]