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:
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));
}