summaryrefslogtreecommitdiff
path: root/src/auditordb/pg_get_purse_summary.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/auditordb/pg_get_purse_summary.c')
-rw-r--r--src/auditordb/pg_get_purse_summary.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/auditordb/pg_get_purse_summary.c b/src/auditordb/pg_get_purse_summary.c
index 5a5e087dd..1c5e8a36f 100644
--- a/src/auditordb/pg_get_purse_summary.c
+++ b/src/auditordb/pg_get_purse_summary.c
@@ -25,9 +25,35 @@
#include "pg_get_purse_summary.h"
#include "pg_helper.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_get_purse_summary (void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
struct TALER_AUDITORDB_PurseBalance *sum)
{
+ struct PostgresClosure *pg = cls;
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_auto_from_type (master_pub),
+ GNUNET_PQ_query_param_end
+ };
+ struct GNUNET_PQ_ResultSpec rs[] = {
+ TALER_PQ_RESULT_SPEC_AMOUNT ("balance",
+ &sum->balance),
+ GNUNET_PQ_result_spec_uint64 ("open_purses",
+ &sum->open_purses),
+ GNUNET_PQ_result_spec_end
+ };
+
+ PREPARE (pg,
+ "auditor_get_purse_summary",
+ "SELECT"
+ " open_purses"
+ ",balance_val"
+ ",balance_frac"
+ " FROM auditor_purse_summary"
+ " WHERE master_pub=$1;");
+ return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
+ "auditor_get_purse_summary",
+ params,
+ rs);
}