gnunet-svn
[Top][All Lists]
Advanced

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

[taler-merchant] branch master updated: fix query paid orders & add test


From: gnunet
Subject: [taler-merchant] branch master updated: fix query paid orders & add test
Date: Sat, 01 Aug 2020 09:05:23 +0200

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

jonathan-buchanan pushed a commit to branch master
in repository merchant.

The following commit(s) were added to refs/heads/master by this push:
     new 859675f  fix query paid orders & add test
859675f is described below

commit 859675fe134b673b99cf1d9edcbdf258798ea740
Author: Jonathan Buchanan <jonathan.russ.buchanan@gmail.com>
AuthorDate: Sat Aug 1 03:05:09 2020 -0400

    fix query paid orders & add test
---
 .../taler-merchant-httpd_private-get-orders.c      | 43 +++++++++++++++-------
 src/testing/test_merchant_api.c                    |  9 ++++-
 2 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_private-get-orders.c 
b/src/backend/taler-merchant-httpd_private-get-orders.c
index ab90c57..dc4901c 100644
--- a/src/backend/taler-merchant-httpd_private-get-orders.c
+++ b/src/backend/taler-merchant-httpd_private-get-orders.c
@@ -259,21 +259,9 @@ add_order (void *cls,
   struct AddOrderState *aos = cls;
   json_t *contract_terms;
   struct GNUNET_HashCode h_contract_terms;
-  enum GNUNET_DB_QueryStatus qs =
-    TMH_db->lookup_order (TMH_db->cls,
-                          aos->instance_id,
-                          order_id,
-                          NULL,
-                          &contract_terms);
+  enum GNUNET_DB_QueryStatus qs;
   bool refundable = false;
   bool paid;
-  if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
-  {
-    aos->result = 1;
-    aos->ec_msg = "failed to lookup order in database";
-    json_decref (contract_terms);
-    return;
-  }
 
   {
     qs = TMH_db->lookup_order_status (TMH_db->cls,
@@ -288,11 +276,38 @@ add_order (void *cls,
     {
       aos->result = 1;
       aos->ec_msg = "failed to lookup order status in database";
-      json_decref (contract_terms);
       return;
     }
   }
 
+  if (paid)
+  {
+    /* if the order was paid, it must have been claimed, so use
+       lookup_contract_terms to avoid the order being deleted in the db. */
+    uint64_t os;
+    qs = TMH_db->lookup_contract_terms (TMH_db->cls,
+                                        aos->instance_id,
+                                        order_id,
+                                        &contract_terms,
+                                        &os);
+  }
+  else
+  {
+    qs = TMH_db->lookup_order (TMH_db->cls,
+                               aos->instance_id,
+                               order_id,
+                               NULL,
+                               &contract_terms);
+  }
+
+  if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
+  {
+    aos->result = 1;
+    aos->ec_msg = "failed to lookup order in database";
+    json_decref (contract_terms);
+    return;
+  }
+
   {
     struct TALER_Amount order_amount;
     struct GNUNET_TIME_Absolute rd;
diff --git a/src/testing/test_merchant_api.c b/src/testing/test_merchant_api.c
index 6ea9901..b8ef13c 100644
--- a/src/testing/test_merchant_api.c
+++ b/src/testing/test_merchant_api.c
@@ -286,12 +286,14 @@ run (void *cls,
                                              "x-taler-bank",
                                              "",
                                              ""),
-    /*TALER_TESTING_cmd_merchant_post_orders2 ("create-proposal-1-idem",
+    /*
+    TALER_TESTING_cmd_merchant_post_orders2 ("create-proposal-1-idem",
                                              merchant_url,
                                              MHD_HTTP_OK,
                                              "1",
                                              GNUNET_TIME_UNIT_ZERO_ABS,
                                              GNUNET_TIME_UNIT_FOREVER_ABS,
+                                             true,
                                              "EUR:5.0",
                                              "x-taler-bank",
                                              "",
@@ -365,6 +367,11 @@ run (void *cls,
                                           true,
                                           false,
                                           MHD_HTTP_OK),
+    TALER_TESTING_cmd_merchant_get_orders ("get-orders-1-paid",
+                                           merchant_url,
+                                           MHD_HTTP_OK,
+                                           "create-proposal-1",
+                                           NULL),
     TALER_TESTING_cmd_merchant_pay_order ("replay-simple",
                                           merchant_url,
                                           MHD_HTTP_OK,

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