diff options
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-get-products.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-get-products.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_private-get-products.c b/src/backend/taler-merchant-httpd_private-get-products.c index bc90c94d..d9fa4e49 100644 --- a/src/backend/taler-merchant-httpd_private-get-products.c +++ b/src/backend/taler-merchant-httpd_private-get-products.c @@ -1,6 +1,6 @@ /* This file is part of TALER - (C) 2019, 2020, 2021 Taler Systems SA + (C) 2019, 2020, 2021, 2024 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -30,6 +30,7 @@ */ static void add_product (void *cls, + uint64_t product_serial, const char *product_id) { json_t *pa = cls; @@ -38,6 +39,8 @@ add_product (void *cls, json_array_append_new ( pa, GNUNET_JSON_PACK ( + GNUNET_JSON_pack_uint64 ("product_serial", + product_serial), GNUNET_JSON_pack_string ("product_id", product_id)))); } @@ -50,11 +53,26 @@ TMH_private_get_products (const struct TMH_RequestHandler *rh, { json_t *pa; enum GNUNET_DB_QueryStatus qs; + int64_t limit; + uint64_t offset; + limit = 20; /* default */ + TALER_MHD_parse_request_snumber (connection, + "limit", + &limit); + if (limit < 0) + offset = INT64_MAX; + else + offset = 0; + TALER_MHD_parse_request_number (connection, + "offset", + &offset); pa = json_array (); GNUNET_assert (NULL != pa); qs = TMH_db->lookup_products (TMH_db->cls, hc->instance->settings.id, + offset, + limit, &add_product, pa); if (0 > qs) |