summaryrefslogtreecommitdiff
path: root/src/lib/merchant_api_get_orders.c
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-12-16 17:54:16 +0800
committerChristian Grothoff <grothoff@gnunet.org>2023-12-16 17:54:30 +0800
commit7891e62bf98bd884c8c993ae698f9a985dbacfbd (patch)
tree0294420f02463fb7d516c95a6b04736c64058274 /src/lib/merchant_api_get_orders.c
parent1c1ec9c54e09e9b90ea7a91e81bf5a6eb878c53b (diff)
downloadmerchant-7891e62bf98bd884c8c993ae698f9a985dbacfbd.tar.gz
merchant-7891e62bf98bd884c8c993ae698f9a985dbacfbd.tar.bz2
merchant-7891e62bf98bd884c8c993ae698f9a985dbacfbd.zip
partial implementation of protocol v6: GET with additional filters, POST not done
Diffstat (limited to 'src/lib/merchant_api_get_orders.c')
-rw-r--r--src/lib/merchant_api_get_orders.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/lib/merchant_api_get_orders.c b/src/lib/merchant_api_get_orders.c
index 966ecb15..f79821db 100644
--- a/src/lib/merchant_api_get_orders.c
+++ b/src/lib/merchant_api_get_orders.c
@@ -236,6 +236,39 @@ TALER_MERCHANT_orders_get2 (
TALER_MERCHANT_OrdersGetCallback cb,
void *cb_cls)
{
+ return TALER_MERCHANT_orders_get3 (
+ ctx,
+ backend_url,
+ paid,
+ refunded,
+ wired,
+ NULL,
+ NULL,
+ date,
+ start_row,
+ delta,
+ timeout,
+ cb,
+ cb_cls);
+}
+
+
+struct TALER_MERCHANT_OrdersGetHandle *
+TALER_MERCHANT_orders_get3 (
+ struct GNUNET_CURL_Context *ctx,
+ const char *backend_url,
+ enum TALER_EXCHANGE_YesNoAll paid,
+ enum TALER_EXCHANGE_YesNoAll refunded,
+ enum TALER_EXCHANGE_YesNoAll wired,
+ const char *session_id,
+ const char *fulfillment_url,
+ struct GNUNET_TIME_Timestamp date,
+ uint64_t start_row,
+ int64_t delta,
+ struct GNUNET_TIME_Relative timeout,
+ TALER_MERCHANT_OrdersGetCallback cb,
+ void *cb_cls)
+{
struct TALER_MERCHANT_OrdersGetHandle *ogh;
CURL *eh;
unsigned int timeout_ms = timeout.rel_value_us
@@ -255,6 +288,8 @@ TALER_MERCHANT_orders_get2 (
/* build ogh->url with the various optional arguments */
{
char *dstr;
+ char *fec = NULL;
+ char *sid = NULL;
bool have_date;
bool have_srow;
char cbuf[30];
@@ -273,6 +308,14 @@ TALER_MERCHANT_orders_get2 (
sizeof (cbuf),
"%llu",
(unsigned long long) start_row);
+ if (NULL != session_id)
+ (void) GNUNET_STRINGS_urlencode (session_id,
+ strlen (session_id),
+ &sid);
+ if (NULL != fulfillment_url)
+ (void) GNUNET_STRINGS_urlencode (fulfillment_url,
+ strlen (fulfillment_url),
+ &fec);
dstr = GNUNET_strdup (GNUNET_TIME_timestamp2s (date));
if (delta > 0)
{
@@ -314,8 +357,14 @@ TALER_MERCHANT_orders_get2 (
(0 != timeout_ms)
? tbuf
: NULL,
+ "session_id",
+ sid,
+ "fulfillment_url",
+ fec,
NULL);
GNUNET_free (dstr);
+ GNUNET_free (sid);
+ GNUNET_free (fec);
}
if (NULL == ogh->url)
{