From f0411396fada5862ce16b56dc57513b9aa79b706 Mon Sep 17 00:00:00 2001 From: Jonathan Buchanan Date: Sat, 13 Jun 2020 02:04:35 -0400 Subject: more backenddb tests --- src/backenddb/plugin_merchantdb_postgres.c | 42 +++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'src/backenddb/plugin_merchantdb_postgres.c') 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); @@ -6914,6 +6929,13 @@ libtaler_plugin_merchantdb_postgres_init (void *cls) 2), /* for postgres_lookup_payment_status() */ GNUNET_PQ_make_prepare ("lookup_payment_status", + "SELECT" + " wired" + ",paid" + " FROM merchant_contract_terms" + " WHERE order_serial=$1", + 1), + GNUNET_PQ_make_prepare ("lookup_payment_status_session_id", "SELECT" " wired" ",paid" -- cgit v1.2.3