summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_private-post-orders.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-post-orders.c')
-rw-r--r--src/backend/taler-merchant-httpd_private-post-orders.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/backend/taler-merchant-httpd_private-post-orders.c b/src/backend/taler-merchant-httpd_private-post-orders.c
index 7c6a0c39..e7b04e3d 100644
--- a/src/backend/taler-merchant-httpd_private-post-orders.c
+++ b/src/backend/taler-merchant-httpd_private-post-orders.c
@@ -542,14 +542,32 @@ patch_order (struct MHD_Connection *connection,
if (NULL == json_object_get (order,
"refund_deadline"))
{
- struct GNUNET_TIME_Absolute zero = { 0 };
+ const char *refdel_s;
+ struct GNUNET_TIME_Absolute rd = { 0 };
- // FIXME: #5957: add way to compute non-zero refund deadline
- // from 'refund delay' specified "somewhere".
+ refdel_s = MHD_lookup_connection_value (connection,
+ MHD_GET_ARGUMENT_KIND,
+ "refund_delay");
+ if (NULL == refdel_s)
+ {
+ struct GNUNET_TIME_Relative r;
+
+ if (GNUNET_OK !=
+ GNUNET_STRINGS_fancy_time_to_relative (refdel_s,
+ &r))
+ {
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_PARAMETER_MALFORMED,
+ "refund_delay");
+
+ }
+ rd = GNUNET_TIME_relative_to_absolute (r);
+ }
GNUNET_assert (0 ==
json_object_set_new (order,
"refund_deadline",
- GNUNET_JSON_from_time_abs (zero)));
+ GNUNET_JSON_from_time_abs (rd)));
}
if (NULL == json_object_get (order,
@@ -909,8 +927,6 @@ merge_inventory (struct MHD_Connection *connection,
inventory_products,
uuids_length,
uuids);
-
-
}