[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.