gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: latest merchant protocol for


From: gnunet
Subject: [taler-wallet-core] branch master updated: latest merchant protocol for refunds
Date: Mon, 27 Jul 2020 10:06:42 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new 694d913d latest merchant protocol for refunds
694d913d is described below

commit 694d913d1f226b3d284258286c73a035fd43da7d
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Mon Jul 27 13:36:32 2020 +0530

    latest merchant protocol for refunds
---
 src/operations/refund.ts | 10 ++--------
 src/types/talerTypes.ts  | 22 ----------------------
 src/util/codec.ts        |  5 +++++
 3 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/src/operations/refund.ts b/src/operations/refund.ts
index b91d42a3..35384c08 100644
--- a/src/operations/refund.ts
+++ b/src/operations/refund.ts
@@ -35,7 +35,6 @@ import {
   initRetryInfo,
   CoinStatus,
   RefundReason,
-  RefundEventRecord,
   RefundState,
   PurchaseRecord,
 } from "../types/dbTypes";
@@ -44,10 +43,10 @@ import { parseRefundUri } from "../util/taleruri";
 import { createRefreshGroup, getTotalRefreshCost } from "./refresh";
 import { Amounts } from "../util/amounts";
 import {
-  codecForMerchantOrderStatus,
   MerchantCoinRefundStatus,
   MerchantCoinRefundSuccessStatus,
   MerchantCoinRefundFailureStatus,
+  codecForMerchantOrderStatusPaid,
 } from "../types/talerTypes";
 import { guardOperationException } from "./errors";
 import { getTimestampNow } from "../util/time";
@@ -414,14 +413,9 @@ async function processPurchaseQueryRefundImpl(
 
   const refundResponse = await readSuccessResponseJsonOrThrow(
     request,
-    codecForMerchantOrderStatus(),
+    codecForMerchantOrderStatusPaid(),
   );
 
-  if (refundResponse.order_status !== "paid") {
-    logger.error("can't refund unpaid order");
-    return;
-  }
-
   await acceptRefunds(
     ws,
     proposalId,
diff --git a/src/types/talerTypes.ts b/src/types/talerTypes.ts
index 2730da4b..1dfcd80a 100644
--- a/src/types/talerTypes.ts
+++ b/src/types/talerTypes.ts
@@ -839,15 +839,7 @@ export interface ExchangeRevealResponse {
   ev_sigs: ExchangeRevealItem[];
 }
 
-export type MerchantOrderStatus =
-  | MerchantOrderStatusPaid
-  | MerchantOrderStatusUnpaid;
-
 interface MerchantOrderStatusPaid {
-  /**
-   * Has the payment for this order (ever) been completed?
-   */
-  order_status: "paid";
 
   /**
    * Was the payment refunded (even partially, via refund or abort)?
@@ -930,11 +922,6 @@ export interface MerchantCoinRefundFailureStatus {
 }
 
 export interface MerchantOrderStatusUnpaid {
-  /**
-   * Has the payment for this order (ever) been completed?
-   */
-  order_status: "unpaid";
-
   /**
    * URI that the wallet must process to complete the payment.
    */
@@ -1250,7 +1237,6 @@ export const codecForMerchantOrderStatusPaid = (): Codec<
   MerchantOrderStatusPaid
 > =>
   makeCodecForObject<MerchantOrderStatusPaid>()
-    .property("order_status", makeCodecForConstString("paid"))
     .property("merchant_pub", codecForString)
     .property("refund_amount", codecForString)
     .property("refunded", codecForBoolean)
@@ -1261,14 +1247,6 @@ export const codecForMerchantOrderStatusUnpaid = (): 
Codec<
   MerchantOrderStatusUnpaid
 > =>
   makeCodecForObject<MerchantOrderStatusUnpaid>()
-    .property("order_status", makeCodecForConstString("unpaid"))
     .property("taler_pay_uri", codecForString)
     .property("already_paid_order_id", makeCodecOptional(codecForString))
     .build("MerchantOrderStatusUnpaid");
-
-export const codecForMerchantOrderStatus = (): Codec<MerchantOrderStatus> =>
-  makeCodecForUnion<MerchantOrderStatus>()
-    .discriminateOn("order_status")
-    .alternative("paid", codecForMerchantOrderStatusPaid())
-    .alternative("unpaid", codecForMerchantOrderStatusUnpaid())
-    .build("MerchantOrderStatus");
diff --git a/src/util/codec.ts b/src/util/codec.ts
index c468704b..383a2d99 100644
--- a/src/util/codec.ts
+++ b/src/util/codec.ts
@@ -176,6 +176,11 @@ class UnionCodecBuilder<
     const baseCodec = this.baseCodec;
     return {
       decode(x: any, c?: Context): R {
+        if (!c) {
+          c = {
+            path: [`(${objectDisplayName})`],
+          };
+        }
         const d = x[discriminator];
         if (d === undefined) {
           throw new DecodingError(

-- 
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]