aboutsummaryrefslogtreecommitdiff
path: root/src/exchangedb/pg_insert_aml_decision.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchangedb/pg_insert_aml_decision.c')
-rw-r--r--src/exchangedb/pg_insert_aml_decision.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/exchangedb/pg_insert_aml_decision.c b/src/exchangedb/pg_insert_aml_decision.c
index d046c87f9..85570ed85 100644
--- a/src/exchangedb/pg_insert_aml_decision.c
+++ b/src/exchangedb/pg_insert_aml_decision.c
@@ -1,6 +1,6 @@
/*
This file is part of TALER
- Copyright (C) 2022 Taler Systems SA
+ Copyright (C) 2022, 2023 Taler Systems SA
TALER is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
@@ -32,10 +32,12 @@ TEH_PG_insert_aml_decision (
const struct TALER_PaytoHashP *h_payto,
const struct TALER_Amount *new_threshold,
enum TALER_AmlDecisionState new_status,
- struct GNUNET_TIME_Absolute decision_time,
+ struct GNUNET_TIME_Timestamp decision_time,
const char *justification,
const struct TALER_AmlOfficerPublicKeyP *decider_pub,
- const struct TALER_AmlOfficerSignatureP *decider_sig)
+ const struct TALER_AmlOfficerSignatureP *decider_sig,
+ bool *invalid_officer,
+ struct GNUNET_TIME_Timestamp *last_date)
{
struct PostgresClosure *pg = cls;
uint32_t ns = (uint32_t) new_status;
@@ -43,27 +45,29 @@ TEH_PG_insert_aml_decision (
GNUNET_PQ_query_param_auto_from_type (h_payto),
TALER_PQ_query_param_amount (new_threshold),
GNUNET_PQ_query_param_uint32 (&ns),
- GNUNET_PQ_query_param_absolute_time (&decision_time),
+ GNUNET_PQ_query_param_timestamp (&decision_time),
GNUNET_PQ_query_param_string (justification),
GNUNET_PQ_query_param_auto_from_type (decider_pub),
GNUNET_PQ_query_param_auto_from_type (decider_sig),
GNUNET_PQ_query_param_end
};
+ struct GNUNET_PQ_ResultSpec rs[] = {
+ GNUNET_PQ_result_spec_bool ("out_invalid_officer",
+ invalid_officer),
+ GNUNET_PQ_result_spec_timestamp ("out_last_date",
+ last_date),
+ GNUNET_PQ_result_spec_end
+ };
PREPARE (pg,
- "insert_aml_decision",
- "INSERT INTO aml_history "
- "(h_payto"
- ",new_threshold_val"
- ",new_threshold_frac"
- ",new_status"
- ",decision_time"
- ",justification"
- ",decider_pub"
- ",decider_sig"
- ") VALUES "
+ "do_insert_aml_decision",
+ "SELECT"
+ " out_invalid_officer"
+ ",out_last_date"
+ " FROM exchange_do_insert_aml_decision"
"($1, $2, $3, $4, $5, $6, $7, $8);");
- return GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "insert_aml_decision",
- params);
+ return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
+ "do_insert_aml_decision",
+ params,
+ rs);
}