diff options
author | Jonathan Buchanan <jonathan.russ.buchanan@gmail.com> | 2020-06-13 02:04:35 -0400 |
---|---|---|
committer | Jonathan Buchanan <jonathan.russ.buchanan@gmail.com> | 2020-06-13 02:04:35 -0400 |
commit | f0411396fada5862ce16b56dc57513b9aa79b706 (patch) | |
tree | cf5bffc007682d6722ca759040e4d616973f8658 /src/backenddb/plugin_merchantdb_postgres.c | |
parent | ae2bfdbeaaa2ef289e79c0b57c428672a8157ff0 (diff) | |
download | merchant-f0411396fada5862ce16b56dc57513b9aa79b706.tar.gz merchant-f0411396fada5862ce16b56dc57513b9aa79b706.tar.bz2 merchant-f0411396fada5862ce16b56dc57513b9aa79b706.zip |
more backenddb tests
Diffstat (limited to 'src/backenddb/plugin_merchantdb_postgres.c')
-rw-r--r-- | src/backenddb/plugin_merchantdb_postgres.c | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/src/backenddb/plugin_merchantdb_postgres.c b/src/backenddb/plugin_merchantdb_postgres.c index 0f338ff1..a6c10413 100644 --- a/src/backenddb/plugin_merchantdb_postgres.c +++ b/src/backenddb/plugin_merchantdb_postgres.c @@ -2024,11 +2024,6 @@ postgres_lookup_payment_status (void *cls, uint8_t paid8; uint8_t wired8; enum GNUNET_DB_QueryStatus qs; - struct GNUNET_PQ_QueryParam params[] = { - GNUNET_PQ_query_param_uint64 (&order_serial), - GNUNET_PQ_query_param_string (session_id), - GNUNET_PQ_query_param_end - }; struct GNUNET_PQ_ResultSpec rs[] = { GNUNET_PQ_result_spec_auto_from_type ("paid", &paid8), @@ -2036,12 +2031,32 @@ postgres_lookup_payment_status (void *cls, &wired8), GNUNET_PQ_result_spec_end }; - check_connection (pg); - qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn, - "lookup_payment_status", - params, - rs); + if (NULL == session_id) + { + struct GNUNET_PQ_QueryParam params[] = { + GNUNET_PQ_query_param_uint64 (&order_serial), + GNUNET_PQ_query_param_end + }; + + qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn, + "lookup_payment_status", + params, + rs); + } + else + { + struct GNUNET_PQ_QueryParam params[] = { + GNUNET_PQ_query_param_uint64 (&order_serial), + GNUNET_PQ_query_param_string (session_id), + GNUNET_PQ_query_param_end + }; + + qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn, + "lookup_payment_status_session_id", + params, + rs); + } if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs) { *paid = (0 != paid8); @@ -6918,6 +6933,13 @@ libtaler_plugin_merchantdb_postgres_init (void *cls) " wired" ",paid" " FROM merchant_contract_terms" + " WHERE order_serial=$1", + 1), + GNUNET_PQ_make_prepare ("lookup_payment_status_session_id", + "SELECT" + " wired" + ",paid" + " FROM merchant_contract_terms" " WHERE order_serial=$1" " AND session_id=$2", 2), |