diff options
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-post-orders.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-post-orders.c | 28 |
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); - - } |