diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-05-06 19:32:36 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-05-06 19:32:36 +0200 |
commit | c84339de2d37076cfd114ae1a097cf084d36b7a0 (patch) | |
tree | a01ac1f7b5fda6780b3198dbc73bf8c580ab8c60 /src/backenddb/plugin_merchantdb_postgres.c | |
parent | 2ba0fedd391988610d6d18d9e5b61ac00c9f663e (diff) | |
download | merchant-c84339de2d37076cfd114ae1a097cf084d36b7a0.tar.gz merchant-c84339de2d37076cfd114ae1a097cf084d36b7a0.tar.bz2 merchant-c84339de2d37076cfd114ae1a097cf084d36b7a0.zip |
fix ftbfs
Diffstat (limited to 'src/backenddb/plugin_merchantdb_postgres.c')
-rw-r--r-- | src/backenddb/plugin_merchantdb_postgres.c | 164 |
1 files changed, 107 insertions, 57 deletions
diff --git a/src/backenddb/plugin_merchantdb_postgres.c b/src/backenddb/plugin_merchantdb_postgres.c index ef7deabb..e6bc5306 100644 --- a/src/backenddb/plugin_merchantdb_postgres.c +++ b/src/backenddb/plugin_merchantdb_postgres.c @@ -2692,6 +2692,108 @@ postgres_lookup_order_by_fulfillment (void *cls, } +/** + * Insert information about a wire transfer the merchant has received. + * + * @param cls closure + * @param exchange_url which exchange made the transfer + * @param wtid identifier of the wire transfer + * @param credit_amount how much did we receive + * @param payto_uri what is the merchant's bank account that received the transfer + * @param confirmed whether the transfer was confirmed by the merchant or + * was merely claimed by the exchange at this point + * @return transaction status + */ +static enum GNUNET_DB_QueryStatus +postgres_insert_transfer ( + void *cls, + const char *exchange_url, + const struct TALER_WireTransferIdentifierRawP *wtid, + const struct TALER_Amount *credit_amount, + const char *payto_uri, + bool confirmed) +{ +} + + +/** + * Insert information about a wire transfer the merchant has received. + * + * @param cls closure + * @param exchange_url which exchange made the transfer + * @param payto_uri what is the merchant's bank account that received the transfer + * @param wtid identifier of the wire transfer + * @param td transfer details to store + * @return transaction status + */ +static enum GNUNET_DB_QueryStatus +postgres_insert_transfer_details ( + void *cls, + const char *exchange_url, // FIXME: do we need the URL? We have exchange_pub! + const char *payto_uri, + const struct TALER_WireTransferIdentifierRawP *wtid, + const struct TALER_EXCHANGE_TransferData *td) +{ +} + + +/** + * Obtain information about wire fees charged by an exchange, + * including signature (so we have proof). + * + * @param cls closure + * @param master_pub public key of the exchange + * @param h_wire_method hash of wire method + * @param contract_date date of the contract to use for the lookup + * @param[out] wire_fee wire fee charged + * @param[out] closing_fee closing fee charged (irrelevant for us, + * but needed to check signature) + * @param[out] start_date start of fee being used + * @param[out] end_date end of fee being used + * @param[out] master_sig signature of exchange over fee structure + * @return transaction status code + */ +static enum GNUNET_DB_QueryStatus +postgres_lookup_wire_fee (void *cls, + const struct TALER_MasterPublicKeyP *master_pub, + const char *wire_method, + struct GNUNET_TIME_Absolute contract_date, + struct TALER_Amount *wire_fee, + struct TALER_Amount *closing_fee, + struct GNUNET_TIME_Absolute *start_date, + struct GNUNET_TIME_Absolute *end_date, + struct TALER_MasterSignatureP *master_sig) +{ + struct PostgresClosure *pg = cls; + struct GNUNET_PQ_QueryParam params[] = { + GNUNET_PQ_query_param_auto_from_type (master_pub), + GNUNET_PQ_query_param_string (wire_method), // FIXME: hash first? + GNUNET_PQ_query_param_absolute_time (&contract_date), + GNUNET_PQ_query_param_end + }; + struct GNUNET_PQ_ResultSpec rs[] = { + TALER_PQ_RESULT_SPEC_AMOUNT ("wire_fee", + wire_fee), + TALER_PQ_RESULT_SPEC_AMOUNT ("closing_fee", + closing_fee), + GNUNET_PQ_result_spec_absolute_time ("start_date", + start_date), + GNUNET_PQ_result_spec_absolute_time ("end_date", + end_date), + GNUNET_PQ_result_spec_auto_from_type ("master_sig", + master_sig), + GNUNET_PQ_result_spec_end + }; + + check_connection (pg); + // FIXME: SQL needs updating: wire_method, etc! + return GNUNET_PQ_eval_prepared_singleton_select (pg->conn, + "lookup_wire_fee", + params, + rs); +} + + /* ********************* OLD API ************************** */ /** @@ -3521,62 +3623,6 @@ postgres_store_wire_fee_by_exchange ( /** - * Obtain information about wire fees charged by an exchange, - * including signature (so we have proof). - * - * @param cls closure - * @param exchange_pub public key of the exchange - * @param h_wire_method hash of wire method - * @param contract_date date of the contract to use for the lookup - * @param[out] wire_fee wire fee charged - * @param[out] closing_fee closing fee charged (irrelevant for us, - * but needed to check signature) - * @param[out] start_date start of fee being used - * @param[out] end_date end of fee being used - * @param[out] exchange_sig signature of exchange over fee structure - * @return transaction status code - */ -static enum GNUNET_DB_QueryStatus -postgres_lookup_wire_fee (void *cls, - const struct TALER_MasterPublicKeyP *exchange_pub, - const struct GNUNET_HashCode *h_wire_method, - struct GNUNET_TIME_Absolute contract_date, - struct TALER_Amount *wire_fee, - struct TALER_Amount *closing_fee, - struct GNUNET_TIME_Absolute *start_date, - struct GNUNET_TIME_Absolute *end_date, - struct TALER_MasterSignatureP *exchange_sig) -{ - struct PostgresClosure *pg = cls; - struct GNUNET_PQ_QueryParam params[] = { - GNUNET_PQ_query_param_auto_from_type (exchange_pub), - GNUNET_PQ_query_param_auto_from_type (h_wire_method), - GNUNET_PQ_query_param_absolute_time (&contract_date), - GNUNET_PQ_query_param_end - }; - struct GNUNET_PQ_ResultSpec rs[] = { - TALER_PQ_RESULT_SPEC_AMOUNT ("wire_fee", - wire_fee), - TALER_PQ_RESULT_SPEC_AMOUNT ("closing_fee", - closing_fee), - GNUNET_PQ_result_spec_absolute_time ("start_date", - start_date), - GNUNET_PQ_result_spec_absolute_time ("end_date", - end_date), - GNUNET_PQ_result_spec_auto_from_type ("exchange_sig", - exchange_sig), - GNUNET_PQ_result_spec_end - }; - - check_connection (pg); - return GNUNET_PQ_eval_prepared_singleton_select (pg->conn, - "lookup_wire_fee", - params, - rs); -} - - -/** * Lookup proof information about a wire transfer. * * @param cls closure @@ -5896,6 +5942,11 @@ libtaler_plugin_merchantdb_postgres_init (void *cls) plugin->insert_refund_proof = &postgres_insert_refund_proof; plugin->lookup_refund_proof = &postgres_lookup_refund_proof; plugin->lookup_order_by_fulfillment = &postgres_lookup_order_by_fulfillment; + /* WIP: */ + plugin->insert_transfer = &postgres_insert_transfer; + plugin->insert_transfer_details = &postgres_insert_transfer_details; + plugin->lookup_wire_fee = &postgres_lookup_wire_fee; + /* OLD API: */ plugin->store_coin_to_transfer = &postgres_store_coin_to_transfer; plugin->store_transfer_to_proof = &postgres_store_transfer_to_proof; @@ -5906,7 +5957,6 @@ libtaler_plugin_merchantdb_postgres_init (void *cls) plugin->find_deposits_by_wtid = &postgres_find_deposits_by_wtid; plugin->find_proof_by_wtid = &postgres_find_proof_by_wtid; plugin->get_authorized_tip_amount = &postgres_get_authorized_tip_amount; - plugin->lookup_wire_fee = &postgres_lookup_wire_fee; plugin->enable_tip_reserve_TR = &postgres_enable_tip_reserve_TR; plugin->authorize_tip_TR = &postgres_authorize_tip_TR; plugin->lookup_tip_by_id = &postgres_lookup_tip_by_id; |