merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 6ce847234912a312a5c2dab5ee1d8adddcde45d1
parent 2c5447ad30978dae029396722fb343916a1b6b9d
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 26 Dec 2025 15:19:58 +0100

implement select_report

Diffstat:
Msrc/backenddb/pg_select_report.c | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+), 0 deletions(-)

diff --git a/src/backenddb/pg_select_report.c b/src/backenddb/pg_select_report.c @@ -40,4 +40,68 @@ TMH_PG_select_report (void *cls, enum TALER_ErrorCode *last_error_code, char **last_error_detail) { + struct PostgresClosure *pg = cls; + struct GNUNET_PQ_QueryParam params[] = { + GNUNET_PQ_query_param_string (instance_id), + GNUNET_PQ_query_param_uint64 (&report_id), + GNUNET_PQ_query_param_end + }; + uint32_t code; + struct GNUNET_PQ_ResultSpec rs[] = { + GNUNET_PQ_result_spec_string ("report_program_section", + report_program_section), + GNUNET_PQ_result_spec_string ("report_description", + report_description), + GNUNET_PQ_result_spec_string ("mime_type", + mime_type), + GNUNET_PQ_result_spec_string ("data_source", + data_source), + GNUNET_PQ_result_spec_string ("target_address", + target_address), + GNUNET_PQ_result_spec_relative_time ("frequency", + frequency), + GNUNET_PQ_result_spec_relative_time ("frequency_shift", + frequency_shift), + GNUNET_PQ_result_spec_absolute_time ("next_transmission", + next_transmission), + GNUNET_PQ_result_spec_allow_null ( + GNUNET_PQ_result_spec_uint32 ("last_error_code", + &code), + NULL), + GNUNET_PQ_result_spec_allow_null ( + GNUNET_PQ_result_spec_string ("last_error_detail", + last_error_detail), + NULL), + GNUNET_PQ_result_spec_end + }; + enum GNUNET_DB_QueryStatus qs; + + *last_error_detail = NULL; + code = TALER_EC_NONE; + check_connection (pg); + PREPARE (pg, + "lookup_reports_pending", + "SELECT" + " mr.report_program_section" + " ,mr.report_description" + " ,mr.mime_type" + " ,mr.data_source" + " ,mr.target_address" + " ,mr.frequency" + " ,mr.frequency_shift" + " ,mr.next_transmission" + " ,mr.last_error_code" + " ,mr.last_error_details" + " FROM merchant_reports mr" + " JOIN merchant_instances mi" + " USING (merchant_serial)" + " WHERE merchant_id=$1" + " AND report_serial=$2;"); + qs = GNUNET_PQ_eval_prepared_singleton_select ( + pg->conn, + "select_report", + params, + rs); + *last_error_code = (enum TALER_ErrorCode) code; + return qs; }