merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 1482298b70381c3b8da3ffa34637de962479a93e
parent 58f315885efa6f7835074ef1ab154ed39e07ea82
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date:   Sun, 25 Jan 2026 23:08:51 +0100

adding remaining_stock #0010890

Diffstat:
Msrc/backend/taler-merchant-httpd_get-templates-ID.c | 15+++++++++++----
Msrc/backenddb/pg_lookup_inventory_products.c | 40++++++++++++++++++++++++++++++++++++++++
Msrc/backenddb/pg_lookup_inventory_products_filtered.c | 40++++++++++++++++++++++++++++++++++++++++
Msrc/include/taler_merchantdb_plugin.h | 1088++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/testing/test_merchant_api.c | 18+++++++++++++-----
Msrc/testing/testing_api_cmd_post_products.c | 16++++++----------
6 files changed, 659 insertions(+), 558 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_get-templates-ID.c b/src/backend/taler-merchant-httpd_get-templates-ID.c @@ -115,16 +115,13 @@ add_inventory_product ( struct InventoryPayloadContext *ipc = cls; json_t *jcategories; json_t *product; + char remaining_stock_buf[64]; jcategories = json_array (); GNUNET_assert (NULL != jcategories); for (size_t i = 0; i < num_categories; i++) { /* Adding per product category */ - // FIXME: include how much of the product is - // still in stock (if we manage stock) - // => wallets can restrict user to - // only select an amount that is still in stock TMH_category_set_add (&ipc->category_set, categories[i]); GNUNET_assert (0 == @@ -132,6 +129,14 @@ add_inventory_product ( json_integer (categories[i]))); } GNUNET_assert (0 < pd->price_array_length); + TALER_MERCHANT_vk_format_fractional_string ( + TALER_MERCHANT_VK_STOCK, + pd->remaining_stock, + ( (INT64_MAX == (int64_t) pd->remaining_stock) + ? INT32_MAX + : pd->remaining_stock_frac), + sizeof (remaining_stock_buf), + remaining_stock_buf); product = GNUNET_JSON_PACK ( GNUNET_JSON_pack_string ("product_id", product_id), @@ -151,6 +156,8 @@ add_inventory_product ( pd->allow_fractional_quantity), GNUNET_JSON_pack_uint64 ("unit_precision_level", pd->fractional_precision_level), + GNUNET_JSON_pack_string ("remaining_stock", + remaining_stock_buf), GNUNET_JSON_pack_array_steal ("categories", jcategories), GNUNET_JSON_pack_allow_null ( diff --git a/src/backenddb/pg_lookup_inventory_products.c b/src/backenddb/pg_lookup_inventory_products.c @@ -90,6 +90,10 @@ lookup_inventory_products_cb (void *cls, "price_array", &pd.price_array_length, &pd.price_array), + GNUNET_PQ_result_spec_uint64 ("remaining_stock", + &pd.remaining_stock), + GNUNET_PQ_result_spec_uint32 ("remaining_stock_frac", + &pd.remaining_stock_frac), TALER_PQ_result_spec_json ("taxes", &pd.taxes), GNUNET_PQ_result_spec_allow_null ( @@ -155,6 +159,16 @@ TMH_PG_lookup_inventory_products (void *cls, ",product_name" ",unit" ",price_array" + ",CASE WHEN (minv.total_stock = 9223372036854775807" + " AND minv.total_stock_frac = 2147483647)" + " THEN minv.total_stock" + " ELSE (GREATEST(0, rt.remaining_total) / 1000000)::INT8" + " END AS remaining_stock" + ",CASE WHEN (minv.total_stock = 9223372036854775807" + " AND minv.total_stock_frac = 2147483647)" + " THEN minv.total_stock_frac" + " ELSE mod(GREATEST(0, rt.remaining_total), 1000000)::INT4" + " END AS remaining_stock_frac" ",taxes::TEXT" ",image_hash" ",allow_fractional_quantity" @@ -171,6 +185,32 @@ TMH_PG_lookup_inventory_products (void *cls, " WHERE mpc.product_serial = minv.product_serial" " ) AS category_array" " ) t" + ",LATERAL (" + " SELECT COALESCE(SUM(total_locked::NUMERIC * 1000000" + " + total_locked_frac::NUMERIC), 0)" + " AS total_locked" + " FROM merchant_inventory_locks mil" + " WHERE mil.product_serial = minv.product_serial" + " ) il" + ",LATERAL (" + " SELECT COALESCE(SUM(total_locked::NUMERIC * 1000000" + " + total_locked_frac::NUMERIC), 0)" + " AS total_locked" + " FROM merchant_order_locks mol" + " WHERE mol.product_serial = minv.product_serial" + " ) ol" + ",LATERAL (" + " SELECT" + " (minv.total_stock::NUMERIC * 1000000" + " + minv.total_stock_frac::NUMERIC)" + " - (minv.total_sold::NUMERIC * 1000000" + " + minv.total_sold_frac::NUMERIC)" + " - (minv.total_lost::NUMERIC * 1000000" + " + minv.total_lost_frac::NUMERIC)" + " - il.total_locked" + " - ol.total_locked" + " AS remaining_total" + " ) rt" " WHERE inst.merchant_id=$1"); qs = GNUNET_PQ_eval_prepared_multi_select ( pg->conn, diff --git a/src/backenddb/pg_lookup_inventory_products_filtered.c b/src/backenddb/pg_lookup_inventory_products_filtered.c @@ -83,6 +83,10 @@ lookup_inventory_products_cb (void *cls, "price_array", &pd.price_array_length, &pd.price_array), + GNUNET_PQ_result_spec_uint64 ("remaining_stock", + &pd.remaining_stock), + GNUNET_PQ_result_spec_uint32 ("remaining_stock_frac", + &pd.remaining_stock_frac), TALER_PQ_result_spec_json ("taxes", &pd.taxes), GNUNET_PQ_result_spec_allow_null ( @@ -164,6 +168,16 @@ TMH_PG_lookup_inventory_products_filtered ( ",product_name" ",unit" ",price_array" + ",CASE WHEN (minv.total_stock = 9223372036854775807" + " AND minv.total_stock_frac = 2147483647)" + " THEN minv.total_stock" + " ELSE (GREATEST(0, rt.remaining_total) / 1000000)::INT8" + " END AS remaining_stock" + ",CASE WHEN (minv.total_stock = 9223372036854775807" + " AND minv.total_stock_frac = 2147483647)" + " THEN minv.total_stock_frac" + " ELSE mod(GREATEST(0, rt.remaining_total), 1000000)::INT4" + " END AS remaining_stock_frac" ",taxes::TEXT" ",image_hash" ",allow_fractional_quantity" @@ -180,6 +194,32 @@ TMH_PG_lookup_inventory_products_filtered ( " WHERE mpc.product_serial = minv.product_serial" " ) AS category_array" " ) t" + ",LATERAL (" + " SELECT COALESCE(SUM(total_locked::NUMERIC * 1000000" + " + total_locked_frac::NUMERIC), 0)" + " AS total_locked" + " FROM merchant_inventory_locks mil" + " WHERE mil.product_serial = minv.product_serial" + " ) il" + ",LATERAL (" + " SELECT COALESCE(SUM(total_locked::NUMERIC * 1000000" + " + total_locked_frac::NUMERIC), 0)" + " AS total_locked" + " FROM merchant_order_locks mol" + " WHERE mol.product_serial = minv.product_serial" + " ) ol" + ",LATERAL (" + " SELECT" + " (minv.total_stock::NUMERIC * 1000000" + " + minv.total_stock_frac::NUMERIC)" + " - (minv.total_sold::NUMERIC * 1000000" + " + minv.total_sold_frac::NUMERIC)" + " - (minv.total_lost::NUMERIC * 1000000" + " + minv.total_lost_frac::NUMERIC)" + " - il.total_locked" + " - ol.total_locked" + " AS remaining_total" + " ) rt" " WHERE inst.merchant_id=$1" " AND (" " (COALESCE (array_length ($2::TEXT[], 1), 0) > 0" diff --git a/src/include/taler_merchantdb_plugin.h b/src/include/taler_merchantdb_plugin.h @@ -503,6 +503,16 @@ struct TALER_MERCHANTDB_InventoryProductDetails uint32_t fractional_precision_level; /** + * Remaining units after sold/lost/locked deductions. + */ + uint64_t remaining_stock; + + /** + * Fractional part of remaining units in units of 1/1000000 of the base value. + */ + uint32_t remaining_stock_frac; + + /** * List of taxes the merchant pays for this product. Never NULL, * but can be an empty array. */ @@ -1898,7 +1908,7 @@ struct TALER_MERCHANTDB_Plugin * @param cls closure */ enum GNUNET_GenericReturnValue - (*connect)(void *cls); + (*connect)(void *cls); /** * Drop merchant tables. Used for testcases and to reset the DB. @@ -1907,7 +1917,7 @@ struct TALER_MERCHANTDB_Plugin * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure */ enum GNUNET_GenericReturnValue - (*drop_tables)(void *cls); + (*drop_tables)(void *cls); /** * Garbage collect database. Removes unnecessary data. @@ -1916,7 +1926,7 @@ struct TALER_MERCHANTDB_Plugin * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure */ enum GNUNET_GenericReturnValue - (*gc)(void *cls); + (*gc)(void *cls); /** * Initialize merchant tables @@ -1925,7 +1935,7 @@ struct TALER_MERCHANTDB_Plugin * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure */ enum GNUNET_GenericReturnValue - (*create_tables)(void *cls); + (*create_tables)(void *cls); /** * Register callback to be invoked on events of type @a es. @@ -1988,8 +1998,8 @@ struct TALER_MERCHANTDB_Plugin * @return #GNUNET_OK on success */ enum GNUNET_GenericReturnValue - (*start)(void *cls, - const char *name); + (*start)(void *cls, + const char *name); /** * Start a transaction with isolation level 'read committed'. @@ -2000,8 +2010,8 @@ struct TALER_MERCHANTDB_Plugin * @return #GNUNET_OK on success */ enum GNUNET_GenericReturnValue - (*start_read_committed)(void *cls, - const char *name); + (*start_read_committed)(void *cls, + const char *name); /** * Roll back the current transaction of a database connection. @@ -2018,7 +2028,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*commit)(void *cls); + (*commit)(void *cls); /** * Lookup all of the instances this backend has configured. @@ -2029,10 +2039,10 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*lookup_instances)(void *cls, - bool active_only, - TALER_MERCHANTDB_InstanceCallback cb, - void *cb_cls); + (*lookup_instances)(void *cls, + bool active_only, + TALER_MERCHANTDB_InstanceCallback cb, + void *cb_cls); /** * Lookup one of the instances this backend has configured. @@ -2044,11 +2054,11 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*lookup_instance)(void *cls, - const char *id, - bool active_only, - TALER_MERCHANTDB_InstanceCallback cb, - void *cb_cls); + (*lookup_instance)(void *cls, + const char *id, + bool active_only, + TALER_MERCHANTDB_InstanceCallback cb, + void *cb_cls); /** * Lookup authentication data of an instance. @@ -2058,9 +2068,9 @@ struct TALER_MERCHANTDB_Plugin * @param[out] ias where to store the auth data */ enum GNUNET_DB_QueryStatus - (*lookup_instance_auth)(void *cls, - const char *instance_id, - struct TALER_MERCHANTDB_InstanceAuthSettings *ias); + (*lookup_instance_auth)(void *cls, + const char *instance_id, + struct TALER_MERCHANTDB_InstanceAuthSettings *ias); /** @@ -2075,12 +2085,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_instance)(void *cls, - const struct TALER_MerchantPublicKeyP *merchant_pub, - const struct TALER_MerchantPrivateKeyP *merchant_priv, - const struct TALER_MERCHANTDB_InstanceSettings *is, - const struct TALER_MERCHANTDB_InstanceAuthSettings *ias, - bool validation_needed); + (*insert_instance)(void *cls, + const struct TALER_MerchantPublicKeyP *merchant_pub, + const struct TALER_MerchantPrivateKeyP *merchant_priv, + const struct TALER_MERCHANTDB_InstanceSettings *is, + const struct TALER_MERCHANTDB_InstanceAuthSettings *ias, + bool validation_needed); /** @@ -2091,7 +2101,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_account)( + (*insert_account)( void *cls, const struct TALER_MERCHANTDB_AccountDetails *account_details); @@ -2109,7 +2119,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_login_token)( + (*insert_login_token)( void *cls, const char *id, const struct TALER_MERCHANTDB_LoginTokenP *token, @@ -2130,7 +2140,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_login_token)( + (*select_login_token)( void *cls, const char *id, const struct TALER_MERCHANTDB_LoginTokenP *token, @@ -2150,12 +2160,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_login_tokens)(void *cls, - const char *instance_id, - uint64_t offset, - int64_t limit, - TALER_MERCHANTDB_LoginTokensCallback cb, - void *cb_cls); + (*lookup_login_tokens)(void *cls, + const char *instance_id, + uint64_t offset, + int64_t limit, + TALER_MERCHANTDB_LoginTokensCallback cb, + void *cb_cls); /** * Delete login token from database. @@ -2166,7 +2176,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_login_token)( + (*delete_login_token)( void *cls, const char *id, const struct TALER_MERCHANTDB_LoginTokenP *token); @@ -2180,7 +2190,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_login_token_serial)( + (*delete_login_token_serial)( void *cls, const char *id, uint64_t serial); @@ -2197,7 +2207,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_account)( + (*update_account)( void *cls, const char *id, const struct TALER_MerchantWireHashP *h_wire, @@ -2215,7 +2225,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_accounts)( + (*select_accounts)( void *cls, const char *id, TALER_MERCHANTDB_AccountCallback cb, @@ -2232,7 +2242,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_account)( + (*select_account)( void *cls, const char *id, const struct TALER_MerchantWireHashP *h_wire, @@ -2249,7 +2259,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_account_by_uri)( + (*select_account_by_uri)( void *cls, const char *id, struct TALER_FullPayto payto_uri, @@ -2264,7 +2274,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_instance_private_key)( + (*delete_instance_private_key)( void *cls, const char *merchant_id); @@ -2277,8 +2287,8 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*purge_instance)(void *cls, - const char *merchant_id); + (*purge_instance)(void *cls, + const char *merchant_id); /** * Update information about an instance into our database. @@ -2288,8 +2298,8 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_instance)(void *cls, - const struct TALER_MERCHANTDB_InstanceSettings *is); + (*update_instance)(void *cls, + const struct TALER_MERCHANTDB_InstanceSettings *is); /** * Update information about an instance's authentication settings @@ -2301,7 +2311,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_instance_auth)( + (*update_instance_auth)( void *cls, const char *merchant_id, const struct TALER_MERCHANTDB_InstanceAuthSettings *ias); @@ -2315,9 +2325,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*inactivate_account)(void *cls, - const char *merchant_id, - const struct TALER_MerchantWireHashP *h_wire); + (*inactivate_account)(void *cls, + const char *merchant_id, + const struct TALER_MerchantWireHashP *h_wire); /** @@ -2329,9 +2339,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*activate_account)(void *cls, - const char *merchant_id, - const struct TALER_MerchantWireHashP *h_wire); + (*activate_account)(void *cls, + const char *merchant_id, + const struct TALER_MerchantWireHashP *h_wire); /** @@ -2350,7 +2360,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*account_kyc_get_status)( + (*account_kyc_get_status)( void *cls, const char *merchant_id, const struct TALER_MerchantWireHashP *h_wire, @@ -2397,7 +2407,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*get_kyc_status)( + (*get_kyc_status)( void *cls, struct TALER_FullPayto merchant_account_uri, const char *instance_id, @@ -2428,7 +2438,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*get_kyc_limits)( + (*get_kyc_limits)( void *cls, struct TALER_FullPayto merchant_account_uri, const char *instance_id, @@ -2459,7 +2469,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*account_kyc_set_status)( + (*account_kyc_set_status)( void *cls, const char *merchant_id, const struct TALER_MerchantWireHashP *h_wire, @@ -2489,7 +2499,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*account_kyc_set_failed)( + (*account_kyc_set_failed)( void *cls, const char *merchant_id, const struct TALER_MerchantWireHashP *h_wire, @@ -2533,15 +2543,15 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_products)(void *cls, - const char *instance_id, - uint64_t offset, - int64_t limit, - const char *category_filter, - const char *name_filter, - const char *description_filter, - TALER_MERCHANTDB_ProductsCallback cb, - void *cb_cls); + (*lookup_products)(void *cls, + const char *instance_id, + uint64_t offset, + int64_t limit, + const char *category_filter, + const char *name_filter, + const char *description_filter, + TALER_MERCHANTDB_ProductsCallback cb, + void *cb_cls); /** @@ -2554,10 +2564,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_all_products)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_ProductCallback cb, - void *cb_cls); + (*lookup_all_products)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_ProductCallback cb, + void *cb_cls); /** * Lookup inventory details for all products of an instance. @@ -2569,10 +2579,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_inventory_products)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_InventoryProductCallback cb, - void *cb_cls); + (*lookup_inventory_products)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_InventoryProductCallback cb, + void *cb_cls); /** * Lookup inventory details for a subset of products. @@ -2588,7 +2598,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_inventory_products_filtered)( + (*lookup_inventory_products_filtered)( void *cls, const char *instance_id, const char *const *product_ids, @@ -2612,12 +2622,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_product)(void *cls, - const char *instance_id, - const char *product_id, - struct TALER_MERCHANTDB_ProductDetails *pd, - size_t *num_categories, - uint64_t **categories); + (*lookup_product)(void *cls, + const char *instance_id, + const char *product_id, + struct TALER_MERCHANTDB_ProductDetails *pd, + size_t *num_categories, + uint64_t **categories); /** * Lookup product image by its hash. @@ -2629,10 +2639,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_product_image_by_hash)(void *cls, - const char *instance_id, - const char *image_hash, - char **image); + (*lookup_product_image_by_hash)(void *cls, + const char *instance_id, + const char *image_hash, + char **image); /** * Delete information about a product. Note that the transaction must @@ -2645,9 +2655,9 @@ struct TALER_MERCHANTDB_Plugin * if locks prevent deletion OR product unknown */ enum GNUNET_DB_QueryStatus - (*delete_product)(void *cls, - const char *instance_id, - const char *product_id); + (*delete_product)(void *cls, + const char *instance_id, + const char *product_id); /** * Insert details about a particular product. @@ -2667,17 +2677,17 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_product)(void *cls, - const char *instance_id, - const char *product_id, - const struct TALER_MERCHANTDB_ProductDetails *pd, - size_t num_cats, - const uint64_t *cats, - bool *no_instance, - bool *conflict, - ssize_t *no_cat, - bool *no_group, - bool *no_pot); + (*insert_product)(void *cls, + const char *instance_id, + const char *product_id, + const struct TALER_MERCHANTDB_ProductDetails *pd, + size_t num_cats, + const uint64_t *cats, + bool *no_instance, + bool *conflict, + ssize_t *no_cat, + bool *no_group, + bool *no_pot); /** * Update details about a particular product. Note that the @@ -2703,20 +2713,20 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_product)(void *cls, - const char *instance_id, - const char *product_id, - const struct TALER_MERCHANTDB_ProductDetails *pd, - size_t num_cats, - const uint64_t *cats, - bool *no_instance, - ssize_t *no_cat, - bool *no_product, - bool *lost_reduced, - bool *sold_reduced, - bool *stocked_reduced, - bool *no_group, - bool *no_pot); + (*update_product)(void *cls, + const char *instance_id, + const char *product_id, + const struct TALER_MERCHANTDB_ProductDetails *pd, + size_t num_cats, + const uint64_t *cats, + bool *no_instance, + ssize_t *no_cat, + bool *no_product, + bool *lost_reduced, + bool *sold_reduced, + bool *stocked_reduced, + bool *no_group, + bool *no_pot); /** @@ -2735,13 +2745,13 @@ struct TALER_MERCHANTDB_Plugin * product is unknown OR if there insufficient stocks remaining */ enum GNUNET_DB_QueryStatus - (*lock_product)(void *cls, - const char *instance_id, - const char *product_id, - const struct GNUNET_Uuid *uuid, - uint64_t quantity, - uint32_t quantity_frac, - struct GNUNET_TIME_Timestamp expiration_time); + (*lock_product)(void *cls, + const char *instance_id, + const char *product_id, + const struct GNUNET_Uuid *uuid, + uint64_t quantity, + uint32_t quantity_frac, + struct GNUNET_TIME_Timestamp expiration_time); /** @@ -2753,7 +2763,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*expire_locks)(void *cls); + (*expire_locks)(void *cls); /** @@ -2768,10 +2778,10 @@ struct TALER_MERCHANTDB_Plugin * if locks prevent deletion OR order unknown */ enum GNUNET_DB_QueryStatus - (*delete_order)(void *cls, - const char *instance_id, - const char *order_id, - bool force); + (*delete_order)(void *cls, + const char *instance_id, + const char *order_id, + bool force); /** @@ -2788,12 +2798,12 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_order)(void *cls, - const char *instance_id, - const char *order_id, - struct TALER_ClaimTokenP *claim_token, - struct TALER_MerchantPostDataHashP *h_post_data, - json_t **contract_terms); + (*lookup_order)(void *cls, + const char *instance_id, + const char *order_id, + struct TALER_ClaimTokenP *claim_token, + struct TALER_MerchantPostDataHashP *h_post_data, + json_t **contract_terms); /** @@ -2807,11 +2817,11 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_order_summary)(void *cls, - const char *instance_id, - const char *order_id, - struct GNUNET_TIME_Timestamp *timestamp, - uint64_t *order_serial); + (*lookup_order_summary)(void *cls, + const char *instance_id, + const char *order_id, + struct GNUNET_TIME_Timestamp *timestamp, + uint64_t *order_serial); /** @@ -2825,11 +2835,11 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_orders)(void *cls, - const char *instance_id, - const struct TALER_MERCHANTDB_OrderFilter *of, - TALER_MERCHANTDB_OrdersCallback cb, - void *cb_cls); + (*lookup_orders)(void *cls, + const char *instance_id, + const struct TALER_MERCHANTDB_OrderFilter *of, + TALER_MERCHANTDB_OrdersCallback cb, + void *cb_cls); /** @@ -2848,16 +2858,16 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_order)(void *cls, - const char *instance_id, - const char *order_id, - const char *session_id, - const struct TALER_MerchantPostDataHashP *h_post_data, - struct GNUNET_TIME_Timestamp pay_deadline, - const struct TALER_ClaimTokenP *claim_token, - const json_t *contract_terms, - const char *pos_key, - enum TALER_MerchantConfirmationAlgorithm pos_algorithm); + (*insert_order)(void *cls, + const char *instance_id, + const char *order_id, + const char *session_id, + const struct TALER_MerchantPostDataHashP *h_post_data, + struct GNUNET_TIME_Timestamp pay_deadline, + const struct TALER_ClaimTokenP *claim_token, + const json_t *contract_terms, + const char *pos_key, + enum TALER_MerchantConfirmationAlgorithm pos_algorithm); /** @@ -2870,7 +2880,7 @@ struct TALER_MERCHANTDB_Plugin * @param blinded_sigs JSON array of blinded signatures */ enum GNUNET_DB_QueryStatus - (*insert_order_blinded_sigs)( + (*insert_order_blinded_sigs)( void *cls, const char *order_id, uint32_t i, @@ -2889,8 +2899,8 @@ struct TALER_MERCHANTDB_Plugin * #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success */ enum GNUNET_DB_QueryStatus - (*unlock_inventory)(void *cls, - const struct GNUNET_Uuid *uuid); + (*unlock_inventory)(void *cls, + const struct GNUNET_Uuid *uuid); /** @@ -2908,12 +2918,12 @@ struct TALER_MERCHANTDB_Plugin * #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success */ enum GNUNET_DB_QueryStatus - (*insert_order_lock)(void *cls, - const char *instance_id, - const char *order_id, - const char *product_id, - uint64_t quantity, - uint32_t quantity_frac); + (*insert_order_lock)(void *cls, + const char *instance_id, + const char *order_id, + const char *product_id, + uint64_t quantity, + uint32_t quantity_frac); /** @@ -2925,7 +2935,7 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*select_order_blinded_sigs)( + (*select_order_blinded_sigs)( void *cls, const char *order_id, TALER_MERCHANTDB_BlindedSigCallback cb, @@ -2947,7 +2957,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_contract_terms2)( + (*lookup_contract_terms2)( void *cls, const char *instance_id, const char *order_id, @@ -2976,7 +2986,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_contract_terms3)( + (*lookup_contract_terms3)( void *cls, const char *instance_id, const char *order_id, @@ -3002,7 +3012,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_contract_terms)( + (*lookup_contract_terms)( void *cls, const char *instance_id, const char *order_id, @@ -3028,7 +3038,7 @@ struct TALER_MERCHANTDB_Plugin * is malformed */ enum GNUNET_DB_QueryStatus - (*insert_contract_terms)( + (*insert_contract_terms)( void *cls, const char *instance_id, const char *order_id, @@ -3052,10 +3062,10 @@ struct TALER_MERCHANTDB_Plugin * is malformed */ enum GNUNET_DB_QueryStatus - (*update_contract_terms)(void *cls, - const char *instance_id, - const char *order_id, - json_t *contract_terms); + (*update_contract_terms)(void *cls, + const char *instance_id, + const char *order_id, + json_t *contract_terms); /** @@ -3072,10 +3082,10 @@ struct TALER_MERCHANTDB_Plugin * if locks prevent deletion OR order unknown */ enum GNUNET_DB_QueryStatus - (*delete_contract_terms)(void *cls, - const char *instance_id, - const char *order_id, - struct GNUNET_TIME_Relative legal_expiration); + (*delete_contract_terms)(void *cls, + const char *instance_id, + const char *order_id, + struct GNUNET_TIME_Relative legal_expiration); /** @@ -3090,12 +3100,12 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_deposits)(void *cls, - const char *instance_id, - const struct TALER_PrivateContractHashP *h_contract_terms - , - TALER_MERCHANTDB_DepositsCallback cb, - void *cb_cls); + (*lookup_deposits)(void *cls, + const char *instance_id, + const struct TALER_PrivateContractHashP *h_contract_terms + , + TALER_MERCHANTDB_DepositsCallback cb, + void *cb_cls); /** @@ -3110,7 +3120,7 @@ struct TALER_MERCHANTDB_Plugin * @param master_sig signature of @a master_pub over the @a exchange_pub and the dates */ enum GNUNET_DB_QueryStatus - (*insert_exchange_signkey)( + (*insert_exchange_signkey)( void *cls, const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_ExchangePublicKeyP *exchange_pub, @@ -3138,7 +3148,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_deposit_confirmation)( + (*insert_deposit_confirmation)( void *cls, const char *instance_id, struct GNUNET_TIME_Timestamp deposit_timestamp, @@ -3170,7 +3180,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_deposit)( + (*insert_deposit)( void *cls, uint32_t offset, uint64_t deposit_confirmation_serial_id, @@ -3193,11 +3203,11 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_refunds)(void *cls, - const char *instance_id, - const struct TALER_PrivateContractHashP *h_contract_terms, - TALER_MERCHANTDB_RefundCallback rc, - void *rc_cls); + (*lookup_refunds)(void *cls, + const char *instance_id, + const struct TALER_PrivateContractHashP *h_contract_terms, + TALER_MERCHANTDB_RefundCallback rc, + void *rc_cls); /** @@ -3210,10 +3220,10 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_spent_tokens_by_order)(void *cls, - uint64_t order_serial, - TALER_MERCHANTDB_UsedTokensCallback cb, - void *cb_cls); + (*lookup_spent_tokens_by_order)(void *cls, + uint64_t order_serial, + TALER_MERCHANTDB_UsedTokensCallback cb, + void *cb_cls); /** @@ -3228,7 +3238,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*mark_contract_paid)( + (*mark_contract_paid)( void *cls, const char *instance_id, const struct TALER_PrivateContractHashP *h_contract_terms, @@ -3249,7 +3259,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*update_contract_session)( + (*update_contract_session)( void *cls, const char *instance_id, const struct TALER_PrivateContractHashP *h_contract_terms, @@ -3274,12 +3284,12 @@ struct TALER_MERCHANTDB_Plugin * regardless of whether it actually increased the refund */ enum GNUNET_DB_QueryStatus - (*refund_coin)(void *cls, - const char *instance_id, - const struct TALER_PrivateContractHashP *h_contract_terms, - struct GNUNET_TIME_Timestamp refund_timestamp, - const struct TALER_CoinSpendPublicKeyP *coin_pub, - const char *reason); + (*refund_coin)(void *cls, + const char *instance_id, + const struct TALER_PrivateContractHashP *h_contract_terms, + struct GNUNET_TIME_Timestamp refund_timestamp, + const struct TALER_CoinSpendPublicKeyP *coin_pub, + const char *reason); /** @@ -3293,11 +3303,11 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_order_status)(void *cls, - const char *instance_id, - const char *order_id, - struct TALER_PrivateContractHashP *h_contract_terms, - bool *paid); + (*lookup_order_status)(void *cls, + const char *instance_id, + const char *order_id, + struct TALER_PrivateContractHashP *h_contract_terms, + bool *paid); /** * Retrieve contract terms given its @a order_serial @@ -3311,13 +3321,13 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_order_status_by_serial)(void *cls, - const char *instance_id, - uint64_t order_serial, - char **order_id, - struct TALER_PrivateContractHashP * - h_contract_terms, - bool *paid); + (*lookup_order_status_by_serial)(void *cls, + const char *instance_id, + uint64_t order_serial, + char **order_id, + struct TALER_PrivateContractHashP * + h_contract_terms, + bool *paid); /** @@ -3330,10 +3340,10 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_deposits_by_order)(void *cls, - uint64_t order_serial, - TALER_MERCHANTDB_DepositedCoinsCallback cb, - void *cb_cls); + (*lookup_deposits_by_order)(void *cls, + uint64_t order_serial, + TALER_MERCHANTDB_DepositedCoinsCallback cb, + void *cb_cls); /** @@ -3347,7 +3357,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_transfer_details_by_order)( + (*lookup_transfer_details_by_order)( void *cls, uint64_t order_serial, TALER_MERCHANTDB_OrderTransferDetailsCallback cb, @@ -3368,7 +3378,7 @@ struct TALER_MERCHANTDB_Plugin * @return database transaction status */ enum GNUNET_DB_QueryStatus - (*update_transfer_status)( + (*update_transfer_status)( void *cls, const char *exchange_url, const struct TALER_WireTransferIdentifierRawP *wtid, @@ -3393,7 +3403,7 @@ struct TALER_MERCHANTDB_Plugin * @return database transaction status */ enum GNUNET_DB_QueryStatus - (*finalize_transfer_status)( + (*finalize_transfer_status)( void *cls, const char *exchange_url, const struct TALER_WireTransferIdentifierRawP *wtid, @@ -3416,7 +3426,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*select_open_transfers)( + (*select_open_transfers)( void *cls, uint64_t limit, TALER_MERCHANTDB_OpenTransferCallback cb, @@ -3434,11 +3444,11 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_deposit_to_transfer)(void *cls, - uint64_t deposit_serial, - const struct TALER_MerchantWireHashP *h_wire, - const char *exchange_url, - const struct TALER_EXCHANGE_DepositData *dd); + (*insert_deposit_to_transfer)(void *cls, + uint64_t deposit_serial, + const struct TALER_MerchantWireHashP *h_wire, + const char *exchange_url, + const struct TALER_EXCHANGE_DepositData *dd); /** @@ -3449,8 +3459,8 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*mark_order_wired)(void *cls, - uint64_t order_serial); + (*mark_order_wired)(void *cls, + uint64_t order_serial); /** @@ -3476,7 +3486,7 @@ struct TALER_MERCHANTDB_Plugin * what was already refunded (idempotency!) */ enum TALER_MERCHANTDB_RefundStatus - (*increase_refund)( + (*increase_refund)( void *cls, const char *instance_id, const char *order_id, @@ -3497,7 +3507,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_refunds_detailed)( + (*lookup_refunds_detailed)( void *cls, const char *instance_id, const struct TALER_PrivateContractHashP *h_contract_terms, @@ -3514,7 +3524,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_refund_proof)( + (*insert_refund_proof)( void *cls, uint64_t refund_serial, const struct TALER_ExchangeSignatureP *exchange_sig, @@ -3533,7 +3543,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_spent_token)( + (*insert_spent_token)( void *cls, const struct TALER_PrivateContractHashP * h_contract_terms, @@ -3553,7 +3563,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_issued_token)( + (*insert_issued_token)( void *cls, const struct TALER_PrivateContractHashP *h_contract_terms, const struct TALER_TokenIssuePublicKeyHashP *h_issue_pub, @@ -3570,7 +3580,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_refund_proof)( + (*lookup_refund_proof)( void *cls, uint64_t refund_serial, struct TALER_ExchangeSignatureP *exchange_sig, @@ -3591,7 +3601,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_order_by_fulfillment)( + (*lookup_order_by_fulfillment)( void *cls, const char *instance_id, const char *fulfillment_url, @@ -3609,7 +3619,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*update_wirewatch_progress)( + (*update_wirewatch_progress)( void *cls, const char *instance, struct TALER_FullPayto payto_uri, @@ -3625,7 +3635,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*select_wirewatch_accounts)( + (*select_wirewatch_accounts)( void *cls, TALER_MERCHANTDB_WirewatchWorkCallback cb, void *cb_cls); @@ -3644,7 +3654,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_transfer)( + (*insert_transfer)( void *cls, const char *instance_id, const char *exchange_url, @@ -3665,9 +3675,9 @@ struct TALER_MERCHANTDB_Plugin * if deletion is prohibited OR transfer is unknown */ enum GNUNET_DB_QueryStatus - (*delete_transfer)(void *cls, - const char *instance_id, - uint64_t transfer_serial_id); + (*delete_transfer)(void *cls, + const char *instance_id, + uint64_t transfer_serial_id); /** @@ -3681,9 +3691,9 @@ struct TALER_MERCHANTDB_Plugin * if the transfer record exists */ enum GNUNET_DB_QueryStatus - (*check_transfer_exists)(void *cls, - const char *instance_id, - uint64_t transfer_serial_id); + (*check_transfer_exists)(void *cls, + const char *instance_id, + uint64_t transfer_serial_id); /** @@ -3696,10 +3706,10 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_account)(void *cls, - const char *instance_id, - struct TALER_FullPayto payto_uri, - uint64_t *account_serial); + (*lookup_account)(void *cls, + const char *instance_id, + struct TALER_FullPayto payto_uri, + uint64_t *account_serial); /** @@ -3716,7 +3726,7 @@ struct TALER_MERCHANTDB_Plugin * #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT on success */ enum GNUNET_DB_QueryStatus - (*insert_transfer_details)( + (*insert_transfer_details)( void *cls, const char *instance_id, const char *exchange_url, @@ -3740,7 +3750,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status code */ enum GNUNET_DB_QueryStatus - (*lookup_wire_fee)( + (*lookup_wire_fee)( void *cls, const struct TALER_MasterPublicKeyP *master_pub, const char *wire_method, @@ -3764,7 +3774,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_deposits_by_contract_and_coin)( + (*lookup_deposits_by_contract_and_coin)( void *cls, const char *instance_id, const struct TALER_PrivateContractHashP *h_contract_terms, @@ -3784,7 +3794,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_transfer_summary)( + (*lookup_transfer_summary)( void *cls, const char *exchange_url, const struct TALER_WireTransferIdentifierRawP *wtid, @@ -3803,7 +3813,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_transfer_details)( + (*lookup_transfer_details)( void *cls, const char *exchange_url, const struct TALER_WireTransferIdentifierRawP *wtid, @@ -3828,7 +3838,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_transfers)( + (*lookup_transfers)( void *cls, const char *instance_id, struct TALER_FullPayto payto_uri, @@ -3859,7 +3869,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_expected_transfers)( + (*lookup_expected_transfers)( void *cls, const char *instance_id, struct TALER_FullPayto payto_uri, @@ -3887,7 +3897,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status code */ enum GNUNET_DB_QueryStatus - (*store_wire_fee_by_exchange)( + (*store_wire_fee_by_exchange)( void *cls, const struct TALER_MasterPublicKeyP *master_pub, const struct GNUNET_HashCode *h_wire_method, @@ -3905,7 +3915,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status code */ enum GNUNET_DB_QueryStatus - (*delete_exchange_accounts)( + (*delete_exchange_accounts)( void *cls, const struct TALER_MasterPublicKeyP *master_pub); @@ -3920,7 +3930,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status code */ enum GNUNET_DB_QueryStatus - (*select_accounts_by_exchange)( + (*select_accounts_by_exchange)( void *cls, const struct TALER_MasterPublicKeyP *master_pub, TALER_MERCHANTDB_ExchangeAccountCallback cb, @@ -3940,7 +3950,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status code */ enum GNUNET_DB_QueryStatus - (*insert_exchange_account)( + (*insert_exchange_account)( void *cls, const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_FullPayto payto_uri, @@ -3960,10 +3970,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_templates)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_TemplatesCallback cb, - void *cb_cls); + (*lookup_templates)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_TemplatesCallback cb, + void *cb_cls); /** @@ -3977,10 +3987,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_template)(void *cls, - const char *instance_id, - const char *template_id, - struct TALER_MERCHANTDB_TemplateDetails *td); + (*lookup_template)(void *cls, + const char *instance_id, + const char *template_id, + struct TALER_MERCHANTDB_TemplateDetails *td); /** * Delete information about a template. @@ -3992,9 +4002,9 @@ struct TALER_MERCHANTDB_Plugin * if template unknown. */ enum GNUNET_DB_QueryStatus - (*delete_template)(void *cls, - const char *instance_id, - const char *template_id); + (*delete_template)(void *cls, + const char *instance_id, + const char *template_id); /** @@ -4008,11 +4018,11 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_template)(void *cls, - const char *instance_id, - const char *template_id, - uint64_t otp_serial_id, - const struct TALER_MERCHANTDB_TemplateDetails *td); + (*insert_template)(void *cls, + const char *instance_id, + const char *template_id, + uint64_t otp_serial_id, + const struct TALER_MERCHANTDB_TemplateDetails *td); /** @@ -4027,10 +4037,10 @@ struct TALER_MERCHANTDB_Plugin * does not yet exist. */ enum GNUNET_DB_QueryStatus - (*update_template)(void *cls, - const char *instance_id, - const char *template_id, - const struct TALER_MERCHANTDB_TemplateDetails *td); + (*update_template)(void *cls, + const char *instance_id, + const char *template_id, + const struct TALER_MERCHANTDB_TemplateDetails *td); /** @@ -4043,9 +4053,9 @@ struct TALER_MERCHANTDB_Plugin * if template unknown. */ enum GNUNET_DB_QueryStatus - (*delete_otp)(void *cls, - const char *instance_id, - const char *otp_id); + (*delete_otp)(void *cls, + const char *instance_id, + const char *otp_id); /** * Insert details about a particular OTP device. @@ -4057,10 +4067,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_otp)(void *cls, - const char *instance_id, - const char *otp_id, - const struct TALER_MERCHANTDB_OtpDeviceDetails *td); + (*insert_otp)(void *cls, + const char *instance_id, + const char *otp_id, + const struct TALER_MERCHANTDB_OtpDeviceDetails *td); /** @@ -4075,10 +4085,10 @@ struct TALER_MERCHANTDB_Plugin * does not yet exist. */ enum GNUNET_DB_QueryStatus - (*update_otp)(void *cls, - const char *instance_id, - const char *otp_id, - const struct TALER_MERCHANTDB_OtpDeviceDetails *td); + (*update_otp)(void *cls, + const char *instance_id, + const char *otp_id, + const struct TALER_MERCHANTDB_OtpDeviceDetails *td); /** * Lookup all of the OTP devices the given instance has configured. @@ -4090,10 +4100,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_otp_devices)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_OtpDeviceCallback cb, - void *cb_cls); + (*lookup_otp_devices)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_OtpDeviceCallback cb, + void *cb_cls); /** @@ -4107,10 +4117,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_otp)(void *cls, - const char *instance_id, - const char *otp_id, - struct TALER_MERCHANTDB_OtpDeviceDetails *td); + (*select_otp)(void *cls, + const char *instance_id, + const char *otp_id, + struct TALER_MERCHANTDB_OtpDeviceDetails *td); /** @@ -4122,10 +4132,10 @@ struct TALER_MERCHANTDB_Plugin * @param[out] serial set to the OTP device serial number * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_otp_serial)(void *cls, - const char *instance_id, - const char *otp_id, - uint64_t *serial); + (*select_otp_serial)(void *cls, + const char *instance_id, + const char *otp_id, + uint64_t *serial); /** * Delete information about a measurement unit. @@ -4139,12 +4149,12 @@ struct TALER_MERCHANTDB_Plugin * @return DB status code */ enum GNUNET_DB_QueryStatus - (*delete_unit)(void *cls, - const char *instance_id, - const char *unit_id, - bool *no_instance, - bool *no_unit, - bool *builtin_conflict); + (*delete_unit)(void *cls, + const char *instance_id, + const char *unit_id, + bool *no_instance, + bool *no_unit, + bool *builtin_conflict); /** * Insert a measurement unit definition. @@ -4158,12 +4168,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_unit)(void *cls, - const char *instance_id, - const struct TALER_MERCHANTDB_UnitDetails *ud, - bool *no_instance, - bool *conflict, - uint64_t *unit_serial); + (*insert_unit)(void *cls, + const char *instance_id, + const struct TALER_MERCHANTDB_UnitDetails *ud, + bool *no_instance, + bool *conflict, + uint64_t *unit_serial); /** * Update a measurement unit definition. @@ -4184,19 +4194,19 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_unit)(void *cls, - const char *instance_id, - const char *unit_id, - const char *unit_name_long, - const json_t *unit_name_long_i18n, - const char *unit_name_short, - const json_t *unit_name_short_i18n, - const bool *unit_allow_fraction, - const uint32_t *unit_precision_level, - const bool *unit_active, - bool *no_instance, - bool *no_unit, - bool *builtin_conflict); + (*update_unit)(void *cls, + const char *instance_id, + const char *unit_id, + const char *unit_name_long, + const json_t *unit_name_long_i18n, + const char *unit_name_short, + const json_t *unit_name_short_i18n, + const bool *unit_allow_fraction, + const uint32_t *unit_precision_level, + const bool *unit_active, + bool *no_instance, + bool *no_unit, + bool *builtin_conflict); /** * Lookup all measurement units of an instance. @@ -4208,10 +4218,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_units)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_UnitsCallback cb, - void *cb_cls); + (*lookup_units)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_UnitsCallback cb, + void *cb_cls); /** * Lookup custom measurement units by name. @@ -4225,12 +4235,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_custom_units_by_names)(void *cls, - const char *instance_id, - const char *const *units, - size_t num_units, - TALER_MERCHANTDB_UnitsCallback cb, - void *cb_cls); + (*lookup_custom_units_by_names)(void *cls, + const char *instance_id, + const char *const *units, + size_t num_units, + TALER_MERCHANTDB_UnitsCallback cb, + void *cb_cls); /** * Lookup a single measurement unit. * @@ -4241,10 +4251,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_unit)(void *cls, - const char *instance_id, - const char *unit_id, - struct TALER_MERCHANTDB_UnitDetails *ud); + (*select_unit)(void *cls, + const char *instance_id, + const char *unit_id, + struct TALER_MERCHANTDB_UnitDetails *ud); /** @@ -4257,9 +4267,9 @@ struct TALER_MERCHANTDB_Plugin * if template unknown. */ enum GNUNET_DB_QueryStatus - (*delete_category)(void *cls, - const char *instance_id, - uint64_t category_id); + (*delete_category)(void *cls, + const char *instance_id, + uint64_t category_id); /** * Insert new product category. @@ -4272,11 +4282,11 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_category)(void *cls, - const char *instance_id, - const char *category_name, - const json_t *category_name_i18n, - uint64_t *category_id); + (*insert_category)(void *cls, + const char *instance_id, + const char *category_name, + const json_t *category_name_i18n, + uint64_t *category_id); /** @@ -4291,11 +4301,11 @@ struct TALER_MERCHANTDB_Plugin * does not yet exist. */ enum GNUNET_DB_QueryStatus - (*update_category)(void *cls, - const char *instance_id, - uint64_t category_id, - const char *category_name, - const json_t *category_name_i18n); + (*update_category)(void *cls, + const char *instance_id, + uint64_t category_id, + const char *category_name, + const json_t *category_name_i18n); /** * Lookup all of the product categories the given instance has configured. @@ -4307,10 +4317,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_categories)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_CategoriesCallback cb, - void *cb_cls); + (*lookup_categories)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_CategoriesCallback cb, + void *cb_cls); /** * Lookup product categories by ID. @@ -4324,12 +4334,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_categories_by_ids)(void *cls, - const char *instance_id, - const uint64_t *category_ids, - size_t num_category_ids, - TALER_MERCHANTDB_CategoriesCallback cb, - void *cb_cls); + (*lookup_categories_by_ids)(void *cls, + const char *instance_id, + const uint64_t *category_ids, + size_t num_category_ids, + TALER_MERCHANTDB_CategoriesCallback cb, + void *cb_cls); /** @@ -4345,12 +4355,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_category)(void *cls, - const char *instance_id, - uint64_t category_id, - struct TALER_MERCHANTDB_CategoryDetails *cd, - size_t *num_products, - char **products); + (*select_category)(void *cls, + const char *instance_id, + uint64_t category_id, + struct TALER_MERCHANTDB_CategoryDetails *cd, + size_t *num_products, + char **products); /** @@ -4364,11 +4374,11 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_category_by_name)(void *cls, - const char *instance_id, - const char *category_name, - json_t **name_i18n, - uint64_t *category_id); + (*select_category_by_name)(void *cls, + const char *instance_id, + const char *category_name, + json_t **name_i18n, + uint64_t *category_id); /** @@ -4381,10 +4391,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_webhooks)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_WebhooksCallback cb, - void *cb_cls); + (*lookup_webhooks)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_WebhooksCallback cb, + void *cb_cls); /** @@ -4398,10 +4408,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_webhook)(void *cls, - const char *instance_id, - const char *webhook_id, - struct TALER_MERCHANTDB_WebhookDetails *wb); + (*lookup_webhook)(void *cls, + const char *instance_id, + const char *webhook_id, + struct TALER_MERCHANTDB_WebhookDetails *wb); /** * Delete information about a webhook. @@ -4413,9 +4423,9 @@ struct TALER_MERCHANTDB_Plugin * if webhook unknown. */ enum GNUNET_DB_QueryStatus - (*delete_webhook)(void *cls, - const char *instance_id, - const char *webhook_id); + (*delete_webhook)(void *cls, + const char *instance_id, + const char *webhook_id); /** @@ -4428,10 +4438,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_webhook)(void *cls, - const char *instance_id, - const char *webhook_id, - const struct TALER_MERCHANTDB_WebhookDetails *wb); + (*insert_webhook)(void *cls, + const char *instance_id, + const char *webhook_id, + const struct TALER_MERCHANTDB_WebhookDetails *wb); /** @@ -4446,10 +4456,10 @@ struct TALER_MERCHANTDB_Plugin * does not yet exist. */ enum GNUNET_DB_QueryStatus - (*update_webhook)(void *cls, - const char *instance_id, - const char *webhook_id, - const struct TALER_MERCHANTDB_WebhookDetails *wb); + (*update_webhook)(void *cls, + const char *instance_id, + const char *webhook_id, + const struct TALER_MERCHANTDB_WebhookDetails *wb); /** * Lookup webhook by event @@ -4462,11 +4472,11 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_webhook_by_event)(void *cls, - const char *instance_id, - const char *event_type, - TALER_MERCHANTDB_WebhookDetailCallback cb, - void *cb_cls); + (*lookup_webhook_by_event)(void *cls, + const char *instance_id, + const char *event_type, + TALER_MERCHANTDB_WebhookDetailCallback cb, + void *cb_cls); /** * Insert webhook in the pending webhook. @@ -4481,13 +4491,13 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_pending_webhook)(void *cls, - const char *instance_id, - uint64_t webhook_serial, - const char *url, - const char *http_method, - const char *header, - const char *body); + (*insert_pending_webhook)(void *cls, + const char *instance_id, + uint64_t webhook_serial, + const char *url, + const char *http_method, + const char *header, + const char *body); /** * Lookup the webhook that need to be send in priority. These webhooks are not successfully * send. @@ -4498,9 +4508,9 @@ struct TALER_MERCHANTDB_Plugin */ // WHERE next_attempt <= now ORDER BY next_attempt ASC enum GNUNET_DB_QueryStatus - (*lookup_pending_webhooks)(void *cls, - TALER_MERCHANTDB_PendingWebhooksCallback cb, - void *cb_cls); + (*lookup_pending_webhooks)(void *cls, + TALER_MERCHANTDB_PendingWebhooksCallback cb, + void *cb_cls); /** * Lookup future webhook in the pending webhook that need to be send. @@ -4512,9 +4522,9 @@ struct TALER_MERCHANTDB_Plugin */ // ORDER BY next_attempt ASC LIMIT 1 enum GNUNET_DB_QueryStatus - (*lookup_future_webhook)(void *cls, - TALER_MERCHANTDB_PendingWebhooksCallback cb, - void *cb_cls); + (*lookup_future_webhook)(void *cls, + TALER_MERCHANTDB_PendingWebhooksCallback cb, + void *cb_cls); /** * Lookup all the webhooks in the pending webhook. @@ -4529,12 +4539,12 @@ struct TALER_MERCHANTDB_Plugin */ // WHERE webhook_pending_serial > min_row ORDER BY webhook_pending_serial ASC LIMIT max_results enum GNUNET_DB_QueryStatus - (*lookup_all_webhooks)(void *cls, - const char *instance_id, - uint64_t min_row, - uint32_t max_results, - TALER_MERCHANTDB_PendingWebhooksCallback cb, - void *cb_cls); + (*lookup_all_webhooks)(void *cls, + const char *instance_id, + uint64_t min_row, + uint32_t max_results, + TALER_MERCHANTDB_PendingWebhooksCallback cb, + void *cb_cls); /** @@ -4546,9 +4556,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_pending_webhook)(void *cls, - uint64_t webhook_pending_serial, - struct GNUNET_TIME_Absolute next_attempt); + (*update_pending_webhook)(void *cls, + uint64_t webhook_pending_serial, + struct GNUNET_TIME_Absolute next_attempt); // maybe add: http status of failure? @@ -4561,8 +4571,8 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_pending_webhook)(void *cls, - uint64_t webhook_pending_serial); + (*delete_pending_webhook)(void *cls, + uint64_t webhook_pending_serial); /** @@ -4575,10 +4585,10 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*select_exchange_keys)(void *cls, - const char *exchange_url, - struct GNUNET_TIME_Absolute *first_retry, - struct TALER_EXCHANGE_Keys **keys); + (*select_exchange_keys)(void *cls, + const char *exchange_url, + struct GNUNET_TIME_Absolute *first_retry, + struct TALER_EXCHANGE_Keys **keys); /** @@ -4590,9 +4600,9 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*insert_exchange_keys)(void *cls, - const struct TALER_EXCHANGE_Keys *keys, - struct GNUNET_TIME_Absolute first_retry); + (*insert_exchange_keys)(void *cls, + const struct TALER_EXCHANGE_Keys *keys, + struct GNUNET_TIME_Absolute first_retry); /** @@ -4605,10 +4615,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_token_families)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_TokenFamiliesCallback cb, - void *cb_cls); + (*lookup_token_families)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_TokenFamiliesCallback cb, + void *cb_cls); /** * Lookup details about a particular token family. @@ -4621,10 +4631,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_token_family)(void *cls, - const char *instance_id, - const char *token_family_slug, - struct TALER_MERCHANTDB_TokenFamilyDetails *details); + (*lookup_token_family)(void *cls, + const char *instance_id, + const char *token_family_slug, + struct TALER_MERCHANTDB_TokenFamilyDetails *details); /** * Delete information about a token family. @@ -4635,9 +4645,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_token_family)(void *cls, - const char *instance_id, - const char *token_family_slug); + (*delete_token_family)(void *cls, + const char *instance_id, + const char *token_family_slug); /** * Update details about a particular token family. @@ -4650,7 +4660,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_token_family)( + (*update_token_family)( void *cls, const char *instance_id, const char *token_family_slug, @@ -4667,7 +4677,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_token_family)( + (*insert_token_family)( void *cls, const char *instance_id, const char *token_family_slug, @@ -4687,7 +4697,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_token_family_key)( + (*lookup_token_family_key)( void *cls, const char *instance_id, const char *token_family_slug, @@ -4709,7 +4719,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_token_family_keys)( + (*lookup_token_family_keys)( void *cls, const char *instance_id, const char *token_family_slug, @@ -4734,7 +4744,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_token_family_key)( + (*insert_token_family_key)( void *cls, const char *merchant_id, const char *token_family_slug, @@ -4756,7 +4766,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*lookup_pending_deposits)( + (*lookup_pending_deposits)( void *cls, const char *exchange_url, uint64_t limit, @@ -4779,7 +4789,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_deposit_confirmation_status)( + (*update_deposit_confirmation_status)( void *cls, uint64_t deposit_serial, bool retry_needed, @@ -4798,7 +4808,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_donau_instance_receipts_amount)( + (*update_donau_instance_receipts_amount)( void *cls, uint64_t *donau_instances_serial, const struct TALER_Amount *new_amount @@ -4825,7 +4835,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_mfa_challenge)( + (*lookup_mfa_challenge)( void *cls, uint64_t challenge_id, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4855,7 +4865,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*solve_mfa_challenge)( + (*solve_mfa_challenge)( void *cls, uint64_t challenge_id, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4879,7 +4889,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_mfa_challenge)( + (*update_mfa_challenge)( void *cls, uint64_t challenge_id, const char *code, @@ -4906,7 +4916,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*create_mfa_challenge)( + (*create_mfa_challenge)( void *cls, enum TALER_MERCHANT_MFA_CriticalOperation op, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4929,7 +4939,7 @@ struct TALER_MERCHANTDB_Plugin * @param charity_id charity ID of the Donau instance */ enum GNUNET_DB_QueryStatus - (*insert_donau_instance)( + (*insert_donau_instance)( void *cls, const char *donau_url, const struct DONAU_Charity *charity, @@ -4946,7 +4956,7 @@ struct TALER_MERCHANTDB_Plugin * @param charity_id charity ID of the Donau instance */ enum GNUNET_DB_QueryStatus - (*check_donau_instance)( + (*check_donau_instance)( void *cls, const struct TALER_MerchantPublicKeyP *merchant_pub, const char *donau_url, @@ -4962,7 +4972,7 @@ struct TALER_MERCHANTDB_Plugin * @param[out] charity_id set to the charity ID of the Donau instance */ enum GNUNET_DB_QueryStatus - (*select_donau_instance_by_serial)( + (*select_donau_instance_by_serial)( void *cls, uint64_t serial, char **donau_url, @@ -4979,7 +4989,7 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*select_donau_instances)( + (*select_donau_instances)( void *cls, const char *id, TALER_MERCHANTDB_DonauInstanceCallback cb, @@ -4995,7 +5005,7 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*select_all_donau_instances)( + (*select_all_donau_instances)( void *cls, TALER_MERCHANTDB_DonauInstanceCallback cb, void *cb_cls); @@ -5010,7 +5020,7 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*select_donau_instances_filtered)( + (*select_donau_instances_filtered)( void *cls, const char *currency, TALER_MERCHANTDB_DonauInstanceFilteredCallback cb, @@ -5024,7 +5034,7 @@ struct TALER_MERCHANTDB_Plugin * @param[out] keys set to the Donau keys on success */ enum GNUNET_DB_QueryStatus - (*lookup_donau_keys)( + (*lookup_donau_keys)( void *cls, const char *donau_url, struct GNUNET_TIME_Absolute *first_retry, @@ -5046,7 +5056,7 @@ struct TALER_MERCHANTDB_Plugin * Donau keys */ enum GNUNET_DB_QueryStatus - (*lookup_order_charity)( + (*lookup_order_charity)( void *cls, const char *instance_id, const char *donau_url, @@ -5064,7 +5074,7 @@ struct TALER_MERCHANTDB_Plugin * @param keys Donau keys to insert or update */ enum GNUNET_DB_QueryStatus - (*upsert_donau_keys)( + (*upsert_donau_keys)( void *cls, const struct DONAU_Keys *keys, struct GNUNET_TIME_Absolute first_retry); @@ -5078,7 +5088,7 @@ struct TALER_MERCHANTDB_Plugin * @param charity_id charity ID of the Donau instance */ enum GNUNET_DB_QueryStatus - (*update_donau_instance)( + (*update_donau_instance)( void *cls, const char *donau_url, const struct DONAU_Charity *charity, @@ -5093,7 +5103,7 @@ struct TALER_MERCHANTDB_Plugin * @param charity_id charity ID of the Donau instance to delete */ enum GNUNET_DB_QueryStatus - (*delete_donau_instance)( + (*delete_donau_instance)( void *cls, const char *id, uint64_t charity_id); @@ -5109,7 +5119,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_amount_by_bucket)( + (*lookup_statistics_amount_by_bucket)( void *cls, const char *instance_id, const char *slug, @@ -5130,7 +5140,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_amount_by_bucket2)( + (*lookup_statistics_amount_by_bucket2)( void *cls, const char *instance_id, const char *slug, @@ -5151,7 +5161,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_counter_by_bucket)( + (*lookup_statistics_counter_by_bucket)( void *cls, const char *instance_id, const char *slug, @@ -5171,7 +5181,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_counter_by_bucket2)( + (*lookup_statistics_counter_by_bucket2)( void *cls, const char *instance_id, const char *prefix, @@ -5192,7 +5202,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_amount_by_interval)( + (*lookup_statistics_amount_by_interval)( void *cls, const char *instance_id, const char *slug, @@ -5210,7 +5220,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_counter_by_interval)( + (*lookup_statistics_counter_by_interval)( void *cls, const char *instance_id, const char *slug, @@ -5231,12 +5241,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_money_pots)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_MoneyPotsCallback cb, - void *cb_cls); + (*select_money_pots)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_MoneyPotsCallback cb, + void *cb_cls); /** @@ -5255,11 +5265,11 @@ struct TALER_MERCHANTDB_Plugin * @a pot_missing was initialized to a missing pot */ enum GNUNET_DB_QueryStatus - (*check_money_pots)(void *cls, - const char *instance_id, - unsigned int pots_len, - uint64_t pots[static pots_len], - uint64_t *pot_missing); + (*check_money_pots)(void *cls, + const char *instance_id, + unsigned int pots_len, + uint64_t pots[static pots_len], + uint64_t *pot_missing); /** * Lookup details about a particular money pot. @@ -5277,13 +5287,13 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_money_pot)(void *cls, - const char *instance_id, - uint64_t money_pot_id, - char **name, - char **description, - size_t *pot_total_len, - struct TALER_Amount **pot_totals); + (*select_money_pot)(void *cls, + const char *instance_id, + uint64_t money_pot_id, + char **name, + char **description, + size_t *pot_total_len, + struct TALER_Amount **pot_totals); /** * Delete information about a money pot. @@ -5294,9 +5304,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_money_pot)(void *cls, - const char *instance_id, - uint64_t money_pot_id); + (*delete_money_pot)(void *cls, + const char *instance_id, + uint64_t money_pot_id); /** * Update details about a particular money pot. @@ -5317,7 +5327,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_money_pot)( + (*update_money_pot)( void *cls, const char *instance_id, uint64_t money_pot_id, @@ -5344,7 +5354,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*increment_money_pots)( + (*increment_money_pots)( void *cls, const char *instance_id, size_t money_pots_len, @@ -5364,7 +5374,7 @@ struct TALER_MERCHANTDB_Plugin * on conflict (@a name already in use at @a instance_id). */ enum GNUNET_DB_QueryStatus - (*insert_money_pot)( + (*insert_money_pot)( void *cls, const char *instance_id, const char *name, @@ -5386,12 +5396,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_reports)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_ReportsCallback cb, - void *cb_cls); + (*select_reports)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_ReportsCallback cb, + void *cb_cls); /** @@ -5403,9 +5413,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_reports_pending)(void *cls, - TALER_MERCHANTDB_ReportsPendingCallback cb, - void *cb_cls); + (*lookup_reports_pending)(void *cls, + TALER_MERCHANTDB_ReportsPendingCallback cb, + void *cb_cls); /** * Lookup details about a particular report. @@ -5429,19 +5439,19 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_report)(void *cls, - const char *instance_id, - uint64_t report_id, - char **report_program_section, - char **report_description, - char **mime_type, - char **data_source, - char **target_address, - struct GNUNET_TIME_Relative *frequency, - struct GNUNET_TIME_Relative *frequency_shift, - struct GNUNET_TIME_Absolute *next_transmission, - enum TALER_ErrorCode *last_error_code, - char **last_error_detail); + (*select_report)(void *cls, + const char *instance_id, + uint64_t report_id, + char **report_program_section, + char **report_description, + char **mime_type, + char **data_source, + char **target_address, + struct GNUNET_TIME_Relative *frequency, + struct GNUNET_TIME_Relative *frequency_shift, + struct GNUNET_TIME_Absolute *next_transmission, + enum TALER_ErrorCode *last_error_code, + char **last_error_detail); /** * Check that a particular report is scheduled under the @@ -5458,12 +5468,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*check_report)(void *cls, - uint64_t report_id, - const struct TALER_MERCHANT_ReportToken *report_token, - const char *mime_type, - char **instance_id, - char **data_source); + (*check_report)(void *cls, + uint64_t report_id, + const struct TALER_MERCHANT_ReportToken *report_token, + const char *mime_type, + char **instance_id, + char **data_source); /** @@ -5475,9 +5485,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_report)(void *cls, - const char *instance_id, - uint64_t report_id); + (*delete_report)(void *cls, + const char *instance_id, + uint64_t report_id); /** * Update transmission status about a particular report. @@ -5491,7 +5501,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_report_status)( + (*update_report_status)( void *cls, const char *instance_id, uint64_t report_id, @@ -5519,7 +5529,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_report)( + (*update_report)( void *cls, const char *instance_id, uint64_t report_id, @@ -5551,7 +5561,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_report)( + (*insert_report)( void *cls, const char *instance_id, const char *report_program_section, @@ -5579,12 +5589,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_product_groups)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_ProductGroupsCallback cb, - void *cb_cls); + (*select_product_groups)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_ProductGroupsCallback cb, + void *cb_cls); /** * Delete information about a product group. @@ -5595,9 +5605,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_product_group)(void *cls, - const char *instance_id, - uint64_t product_group_id); + (*delete_product_group)(void *cls, + const char *instance_id, + uint64_t product_group_id); /** * Update details about a particular product group. @@ -5611,7 +5621,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_product_group)( + (*update_product_group)( void *cls, const char *instance_id, uint64_t product_group_id, @@ -5632,7 +5642,7 @@ struct TALER_MERCHANTDB_Plugin * on conflict (@a name already in use at @a instance_id). */ enum GNUNET_DB_QueryStatus - (*insert_product_group)( + (*insert_product_group)( void *cls, const char *instance_id, const char *name, diff --git a/src/testing/test_merchant_api.c b/src/testing/test_merchant_api.c @@ -49,7 +49,7 @@ * commands should NOT wait for this timeout! */ #define POLL_ORDER_TIMEOUT \ - GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60) + GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60) /** * The 'poll-orders-conclude-1x' and other 'conclude' @@ -57,7 +57,7 @@ * here we use a short value! */ #define POLL_ORDER_SHORT_TIMEOUT \ - GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 2) + GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 2) /** * Configuration file we use. One (big) configuration is used @@ -288,8 +288,8 @@ cmd_exec_wirewatch (const char *label) * @param label label to use for the command. */ #define CMD_EXEC_AGGREGATOR(label) \ - TALER_TESTING_cmd_exec_aggregator (label "-aggregator", config_file), \ - TALER_TESTING_cmd_exec_transfer (label "-transfer", config_file) + TALER_TESTING_cmd_exec_aggregator (label "-aggregator", config_file), \ + TALER_TESTING_cmd_exec_transfer (label "-transfer", config_file) /** @@ -2218,12 +2218,20 @@ run (void *cls, true, 1, MHD_HTTP_NO_CONTENT), - TALER_TESTING_cmd_merchant_post_products ( + TALER_TESTING_cmd_merchant_post_products2 ( "post-products-inv-unit-2", merchant_url, "inv-unit-product-2", "Inventory Unit Product Two", + json_pack ("{s:s}", "en", "Inventory Unit Product Two"), + "test-unit", "EUR:1.2", + "", + json_array (), + -1, /* total stock: infinite */ + 0, /* minimum age */ + json_pack ("{s:s}", "street", "my street"), + GNUNET_TIME_UNIT_ZERO_TS, MHD_HTTP_NO_CONTENT), TALER_TESTING_cmd_merchant_post_products_with_categories ( "post-products-inv-unit-3", diff --git a/src/testing/testing_api_cmd_post_products.c b/src/testing/testing_api_cmd_post_products.c @@ -170,21 +170,17 @@ struct PostProductsState static void post_products_update_unit_total_stock (struct PostProductsState *pps) { - uint64_t stock; - uint32_t frac; - if (-1 == pps->total_stock) { - stock = (uint64_t) INT64_MAX; - frac = (uint32_t) INT32_MAX; + pps->total_stock = INT64_MAX; + pps->total_stock_frac = INT32_MAX; } - else + else if (! pps->unit_allow_fraction) { - stock = (uint64_t) pps->total_stock; - frac = pps->unit_allow_fraction ? pps->total_stock_frac : 0; + pps->total_stock_frac = 0; } - TALER_MERCHANT_format_stock_string (stock, - frac, + TALER_MERCHANT_format_stock_string ((uint64_t) pps->total_stock, + pps->total_stock_frac, pps->unit_total_stock, sizeof (pps->unit_total_stock)); }