gnunet-svn
[Top][All Lists]
Advanced

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

[taler-merchant] 01/02: use order_status string tag


From: gnunet
Subject: [taler-merchant] 01/02: use order_status string tag
Date: Fri, 24 Jul 2020 11:01:34 +0200

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

dold pushed a commit to branch master
in repository merchant.

commit 8029214856fb5619802e0128c06257dc1dd2113a
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Fri Jul 24 14:17:47 2020 +0530

    use order_status string tag
---
 src/backend/taler-merchant-httpd_get-orders-ID.c   |  8 ++--
 .../taler-merchant-httpd_private-get-orders-ID.c   | 16 +++----
 src/lib/merchant_api_merchant_get_order.c          | 36 ++++++++++++++--
 src/lib/merchant_api_wallet_get_order.c            | 49 +++++++++++++++++++++-
 4 files changed, 92 insertions(+), 17 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c 
b/src/backend/taler-merchant-httpd_get-orders-ID.c
index 05bdf38..8604578 100644
--- a/src/backend/taler-merchant-httpd_get-orders-ID.c
+++ b/src/backend/taler-merchant-httpd_get-orders-ID.c
@@ -377,9 +377,9 @@ send_pay_request (struct GetOrderData *god,
                                           god->hc->instance->settings.id);
   ret = TALER_MHD_reply_json_pack (god->sc.con,
                                    MHD_HTTP_OK,
-                                   "{s:s, s:b, s:s?}",
+                                   "{s:s, s:s, s:s?}",
                                    "taler_pay_uri", taler_pay_uri,
-                                   "paid", false,
+                                   "order_status", "unpaid",
                                    "already_paid_order_id",
                                    already_paid_order_id);
   GNUNET_free (taler_pay_uri);
@@ -1061,8 +1061,8 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
     return TALER_MHD_reply_json_pack (
       connection,
       MHD_HTTP_OK,
-      "{s:b, s:b, s:o, s:o, s:o}",
-      "paid", true,
+      "{s:s, s:b, s:o, s:o, s:o}",
+      "order_status", "paid",
       "refunded", god->refunded,
       "refund_amount",
       TALER_JSON_from_amount (&god->refund_amount),
diff --git a/src/backend/taler-merchant-httpd_private-get-orders-ID.c 
b/src/backend/taler-merchant-httpd_private-get-orders-ID.c
index 850b72c..e3286dd 100644
--- a/src/backend/taler-merchant-httpd_private-get-orders-ID.c
+++ b/src/backend/taler-merchant-httpd_private-get-orders-ID.c
@@ -970,11 +970,11 @@ TMH_private_get_orders_ID (const struct 
TMH_RequestHandler *rh,
                                               hc->instance->settings.id);
       ret = TALER_MHD_reply_json_pack (connection,
                                        MHD_HTTP_OK,
-                                       "{s:s, s:b, s:s}",
+                                       "{s:s, s:s, s:s}",
                                        "taler_pay_uri",
                                        taler_pay_uri,
-                                       "paid",
-                                       false,
+                                       "order_status",
+                                       "unpaid",
                                        "already_paid_order_id",
                                        already_paid_order_id);
       GNUNET_free (taler_pay_uri);
@@ -1037,13 +1037,13 @@ TMH_private_get_orders_ID (const struct 
TMH_RequestHandler *rh,
                                             hc->instance->settings.id);
     ret = TALER_MHD_reply_json_pack (connection,
                                      MHD_HTTP_OK,
-                                     "{s:s, s:O, s:b}",
+                                     "{s:s, s:O, s:s}",
                                      "taler_pay_uri",
                                      taler_pay_uri,
                                      "contract_terms",
                                      gorc->contract_terms,
-                                     "paid",
-                                     false);
+                                     "order_status",
+                                     "unpaid");
     GNUNET_free (taler_pay_uri);
     return ret;
   }
@@ -1163,7 +1163,7 @@ TMH_private_get_orders_ID (const struct 
TMH_RequestHandler *rh,
     ret = TALER_MHD_reply_json_pack (connection,
                                      MHD_HTTP_OK,
                                      "{s:o, s:I, s:I, s:o, s:O,"
-                                     " s:b, s:b, s:b, s:o, s:o, s:o}",
+                                     " s:s, s:b, s:b, s:o, s:o, s:o}",
                                      "wire_reports",
                                      gorc->wire_reports,
                                      "exchange_ec",
@@ -1175,8 +1175,8 @@ TMH_private_get_orders_ID (const struct 
TMH_RequestHandler *rh,
                                        &gorc->deposits_total),
                                      "contract_terms",
                                      gorc->contract_terms,
+                                     "order_status",
                                      "paid",
-                                     true,
                                      "refunded",
                                      gorc->refunded,
                                      "wired",
diff --git a/src/lib/merchant_api_merchant_get_order.c 
b/src/lib/merchant_api_merchant_get_order.c
index 25cce30..a339c69 100644
--- a/src/lib/merchant_api_merchant_get_order.c
+++ b/src/lib/merchant_api_merchant_get_order.c
@@ -323,6 +323,7 @@ handle_merchant_order_get_finished (void *cls,
 {
   struct TALER_MERCHANT_OrderMerchantGetHandle *omgh = cls;
   const json_t *json = response;
+  const char *order_status;
   struct TALER_MERCHANT_HttpResponse hr = {
     .http_status = (unsigned int) response_code,
     .reply = json
@@ -357,13 +358,40 @@ handle_merchant_order_get_finished (void *cls,
     return;
   }
 
-  /* HTTP OK */
-  if (! json_boolean_value (json_object_get (json, "paid")))
+  order_status = json_string_value (json_object_get (json, "order_status"));
+
+  if (NULL == order_status)
+  {
+    GNUNET_break_op (0);
+    hr.http_status = 0;
+    hr.ec = TALER_EC_MERCHANT_ORDER_GET_REPLY_MALFORMED;
+    omgh->cb (omgh->cb_cls,
+              &hr,
+              NULL);
+    TALER_MERCHANT_merchant_order_get_cancel (omgh);
+    return;
+  }
+
+  if (0 == strcmp ("paid", order_status))
+  {
+    handle_paid (omgh,
+                 &hr);
+  }
+  else if (0 == strcmp ("unpaid", order_status))
+  {
     handle_unpaid (omgh,
                    &hr);
+  }
   else
-    handle_paid (omgh,
-                 &hr);
+  {
+    GNUNET_break_op (0);
+    hr.http_status = 0;
+    hr.ec = TALER_EC_MERCHANT_ORDER_GET_REPLY_MALFORMED;
+    omgh->cb (omgh->cb_cls,
+              &hr,
+              NULL);
+    TALER_MERCHANT_merchant_order_get_cancel (omgh);
+  }
 }
 
 
diff --git a/src/lib/merchant_api_wallet_get_order.c 
b/src/lib/merchant_api_wallet_get_order.c
index b5468f6..680f856 100644
--- a/src/lib/merchant_api_wallet_get_order.c
+++ b/src/lib/merchant_api_wallet_get_order.c
@@ -110,6 +110,7 @@ handle_wallet_get_order_finished (void *cls,
 {
   struct TALER_MERCHANT_OrderWalletGetHandle *owgh = cls;
   const json_t *json = response;
+  const char *order_status;
 
   owgh->job = NULL;
   if (MHD_HTTP_OK != response_code)
@@ -138,7 +139,31 @@ handle_wallet_get_order_finished (void *cls,
     return;
   }
 
-  if (! json_boolean_value (json_object_get (json, "paid")))
+  order_status = json_string_value (json_object_get (json, "order_status"));
+
+  if (NULL == order_status)
+  {
+    struct TALER_MERCHANT_HttpResponse hr = {
+      .reply = json,
+      .http_status = 0,
+      .ec = TALER_EC_MERCHANT_ORDER_GET_REPLY_MALFORMED,
+    };
+    GNUNET_break_op (0);
+    owgh->cb (owgh->cb_cls,
+              &hr,
+              GNUNET_SYSERR,
+              GNUNET_SYSERR,
+              NULL,
+              NULL,
+              NULL,
+              NULL,
+              0,
+              NULL);
+    TALER_MERCHANT_wallet_order_get_cancel (owgh);
+    return;
+  }
+
+  if (0 == strcmp (order_status, "unpaid"))
   {
     /* Status is: unpaid */
     const char *taler_pay_uri = json_string_value (json_object_get (json,
@@ -174,6 +199,28 @@ handle_wallet_get_order_finished (void *cls,
     return;
   }
 
+  if (0 != strcmp (order_status, "paid"))
+  {
+    struct TALER_MERCHANT_HttpResponse hr = {
+      .reply = json,
+      .http_status = 0,
+      .ec = TALER_EC_MERCHANT_ORDER_GET_REPLY_MALFORMED,
+    };
+    GNUNET_break_op (0);
+    owgh->cb (owgh->cb_cls,
+              &hr,
+              GNUNET_SYSERR,
+              GNUNET_SYSERR,
+              NULL,
+              NULL,
+              NULL,
+              NULL,
+              0,
+              NULL);
+    TALER_MERCHANT_wallet_order_get_cancel (owgh);
+    return;
+  }
+
   {
     struct TALER_Amount refund_amount;
     json_t *refunds;

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