diff options
author | Christian Grothoff <christian@grothoff.org> | 2019-11-17 17:38:58 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2019-11-17 17:38:58 +0100 |
commit | d97f57a3b5743f854b4e4af43f011a159a7e5a45 (patch) | |
tree | 2dab7d63a47ad6610195be7a67a998056f7a3315 | |
parent | ecf7e412e286d9d2e9726c63acea4621a885119b (diff) | |
download | sync-d97f57a3b5743f854b4e4af43f011a159a7e5a45.tar.gz sync-d97f57a3b5743f854b4e4af43f011a159a7e5a45.tar.bz2 sync-d97f57a3b5743f854b4e4af43f011a159a7e5a45.zip |
implement store_payment
-rw-r--r-- | src/syncdb/plugin_syncdb_postgres.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/syncdb/plugin_syncdb_postgres.c b/src/syncdb/plugin_syncdb_postgres.c index 95d39f1..2eea1d5 100644 --- a/src/syncdb/plugin_syncdb_postgres.c +++ b/src/syncdb/plugin_syncdb_postgres.c @@ -264,7 +264,39 @@ postgres_store_payment (void *cls, const char *order_id, const struct TALER_Amount *amount) { - // FIXME: use payment_insert + struct PostgresClosure *pg = cls; + enum GNUNET_DB_QueryStatus qs; + struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); + struct GNUNET_PQ_QueryParam params[] = { + GNUNET_PQ_query_param_auto_from_type (account_pub), + GNUNET_PQ_query_param_string (order_id), + GNUNET_PQ_query_param_absolute_time (&now), + TALER_PQ_query_param_amount (amount), + GNUNET_PQ_query_param_end + }; + + check_connection (pg); + postgres_preflight (pg); + qs = GNUNET_PQ_eval_prepared_non_select (pg->conn, + "payment_insert", + params); + switch (qs) + { + case GNUNET_DB_STATUS_SOFT_ERROR: + GNUNET_break (0); + return SYNC_DB_SOFT_ERROR; + case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS: + GNUNET_break (0); + return SYNC_DB_NO_RESULTS; + case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT: + return SYNC_DB_ONE_RESULT; + case GNUNET_DB_STATUS_HARD_ERROR: + GNUNET_break (0); + return SYNC_DB_HARD_ERROR; + default: + GNUNET_break (0); + return SYNC_DB_HARD_ERROR; + } } |