Line data Source code
1 : /*
2 : This file is part of TALER
3 : Copyright (C) 2024 Taler Systems SA
4 :
5 : TALER is free software; you can redistribute it and/or modify it under the
6 : terms of the GNU General Public License as published by the Free Software
7 : Foundation; either version 3, or (at your option) any later version.
8 :
9 : TALER is distributed in the hope that it will be useful, but WITHOUT ANY
10 : WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 : A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 :
13 : You should have received a copy of the GNU General Public License along with
14 : TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
15 : */
16 :
17 :
18 : #include "taler/platform.h"
19 : #include "taler/taler_pq_lib.h"
20 : #include "pg_helper.h"
21 :
22 : #include "pg_insert_denomination_pending.h"
23 :
24 : enum GNUNET_DB_QueryStatus
25 0 : TAH_PG_insert_denomination_pending (
26 : void *cls,
27 : const struct TALER_AUDITORDB_DenominationPending *dc)
28 : {
29 0 : struct PostgresClosure *pg = cls;
30 0 : struct GNUNET_PQ_QueryParam params[] = {
31 0 : GNUNET_PQ_query_param_auto_from_type (&dc->denom_pub_hash),
32 0 : TALER_PQ_query_param_amount (pg->conn, &dc->denom_balance),
33 0 : TALER_PQ_query_param_amount (pg->conn, &dc->denom_loss),
34 0 : GNUNET_PQ_query_param_uint64 (&dc->num_issued),
35 0 : TALER_PQ_query_param_amount (pg->conn, &dc->denom_risk),
36 0 : TALER_PQ_query_param_amount (pg->conn, &dc->recoup_loss),
37 : GNUNET_PQ_query_param_end
38 : };
39 :
40 0 : PREPARE (pg,
41 : "auditor_denomination_pending_insert",
42 : "INSERT INTO auditor_denomination_pending "
43 : "( denom_pub_hash,"
44 : " denom_balance,"
45 : " denom_loss,"
46 : " num_issued,"
47 : " denom_risk,"
48 : " recoup_loss"
49 : ") VALUES ($1,$2,$3,$4,$5,$6)"
50 : " ON CONFLICT (denom_pub_hash) UPDATE"
51 : " SET denom_balance = excluded.denom_balance, "
52 : " denom_loss = excluded.denom_loss,"
53 : " num_issued = excluded.num_issued,"
54 : " denom_risk = excluded.denom_risk,"
55 : " recoup_loss = excluded.recoup_loss,"
56 : " suppressed = false;"
57 : );
58 0 : return GNUNET_PQ_eval_prepared_non_select (pg->conn,
59 : "auditor_denomination_pending_insert",
60 : params);
61 : }
|