[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-donau] branch master updated: Added missing charity get data
From: |
gnunet |
Subject: |
[taler-donau] branch master updated: Added missing charity get data |
Date: |
Sun, 14 Jan 2024 20:30:44 +0100 |
This is an automated email from the git hooks/post-receive script.
johannes-casaburi pushed a commit to branch master
in repository donau.
The following commit(s) were added to refs/heads/master by this push:
new 65aa20e Added missing charity get data
65aa20e is described below
commit 65aa20e8cdaf97a797cc0aea198f447cb6506dc2
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Sun Jan 14 20:29:56 2024 +0100
Added missing charity get data
---
src/donau/donau-httpd_get-charities.c | 18 +++++++--
src/donau/donau-httpd_get-charity.c | 13 ++++++-
src/donaudb/pg_get_charities.c | 26 ++++++++++++-
src/donaudb/pg_helper.h | 70 +++++++++++++++++------------------
src/donaudb/pg_lookup_charity.c | 18 +++++++--
src/include/donaudb_plugin.h | 14 +++++--
6 files changed, 111 insertions(+), 48 deletions(-)
diff --git a/src/donau/donau-httpd_get-charities.c
b/src/donau/donau-httpd_get-charities.c
index 1719c43..f571c92 100644
--- a/src/donau/donau-httpd_get-charities.c
+++ b/src/donau/donau-httpd_get-charities.c
@@ -22,7 +22,6 @@
#include <gnunet/gnunet_util_lib.h>
#include <jansson.h>
#include <microhttpd.h>
-#include <pthread.h>
#include "taler/taler_json_lib.h"
#include "taler/taler_mhd_lib.h"
#include "taler/taler_signatures.h"
@@ -45,8 +44,12 @@
static void
charities_cb (
void *cls,
+ struct DONAU_CharityPublicKeyP charity_pub,
+ const char *charity_name,
const char *charity_url,
- const char *charity_name)
+ struct TALER_Amount max_per_year,
+ struct TALER_Amount receipts_to_date,
+ uint64_t current_year)
{
json_t *charities = cls;
@@ -55,11 +58,18 @@ charities_cb (
json_array_append (
charities,
GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("charity_pub",
+ &charity_pub),
GNUNET_JSON_pack_string ("url",
charity_url),
GNUNET_JSON_pack_string ("name",
- charity_name)
- )));
+ charity_name),
+ TALER_JSON_pack_amount ("max_per_year",
+ &max_per_year),
+ TALER_JSON_pack_amount ("receipts_to_date",
+ &receipts_to_date),
+ GNUNET_JSON_pack_int64 ("current_year",
+ current_year))));
}
diff --git a/src/donau/donau-httpd_get-charity.c
b/src/donau/donau-httpd_get-charity.c
index c81d0d8..597a8a6 100644
--- a/src/donau/donau-httpd_get-charity.c
+++ b/src/donau/donau-httpd_get-charity.c
@@ -99,13 +99,24 @@ DH_handler_charity_get (
result = TALER_MHD_REPLY_JSON_PACK (
rc->connection,
MHD_HTTP_OK,
+ GNUNET_JSON_pack_data_auto ("charity_pub",
+ meta.charity_pub),
GNUNET_JSON_pack_data_auto ("url",
&meta.charity_url),
GNUNET_JSON_pack_data_auto ("name",
- &meta.charity_name));
+ &meta.charity_name),
+ TALER_JSON_pack_amount ("max_per_year",
+ meta.max_per_year),
+ TALER_JSON_pack_amount ("receipts_to_date",
+ meta.receipts_to_date),
+ GNUNET_JSON_pack_uint64 ("current_year",
+ meta.current_year));
+ GNUNET_free (meta.charity_pub);
GNUNET_free (meta.charity_url);
GNUNET_free (meta.charity_name);
+ GNUNET_free (meta.max_per_year);
+ GNUNET_free (meta.receipts_to_date);
return result;
}
}
diff --git a/src/donaudb/pg_get_charities.c b/src/donaudb/pg_get_charities.c
index 7628edf..e9c8f94 100644
--- a/src/donaudb/pg_get_charities.c
+++ b/src/donaudb/pg_get_charities.c
@@ -65,14 +65,28 @@ get_charities_cb (void *cls,
for (unsigned int i = 0; i < num_results; i++)
{
+ struct DONAU_CharityPublicKeyP charity_pub;
char *charity_name;
char *charity_url;
+ struct TALER_Amount max_per_year;
+ struct TALER_Amount receipts_to_date;
+ uint64_t current_year;
struct GNUNET_PQ_ResultSpec rs[] = {
+ GNUNET_PQ_result_spec_auto_from_type ("charity_pub",
+ &charity_pub),
GNUNET_PQ_result_spec_string ("charity_name",
&charity_name),
GNUNET_PQ_result_spec_string ("charity_url",
&charity_url),
+ TALER_PQ_result_spec_amount ("max_per_year",
+ "EUR", // TODO: Error if using
TALER_PQ_RESULT_SPEC_AMOUNT
+ &max_per_year),
+ TALER_PQ_result_spec_amount ("receipts_to_date",
+ "EUR", // TODO: Error if using
TALER_PQ_RESULT_SPEC_AMOUNT
+ &receipts_to_date),
+ GNUNET_PQ_result_spec_uint64 ("current_year",
+ ¤t_year),
GNUNET_PQ_result_spec_end
};
@@ -86,8 +100,12 @@ get_charities_cb (void *cls,
return;
}
ctx->cb (ctx->cb_cls,
+ charity_pub,
charity_name,
- charity_url);
+ charity_url,
+ max_per_year,
+ receipts_to_date,
+ current_year);
GNUNET_PQ_cleanup_result (rs);
}
}
@@ -112,8 +130,12 @@ DH_PG_get_charities (void *cls,
PREPARE (pg,
"get_charities",
"SELECT"
- " charity_name"
+ " charity_pub"
+ ",charity_name"
",charity_url"
+ ",max_per_year"
+ ",receipts_to_date"
+ ",current_year"
" FROM charities");
qs = GNUNET_PQ_eval_prepared_multi_select (pg->conn,
"get_charities",
diff --git a/src/donaudb/pg_helper.h b/src/donaudb/pg_helper.h
index 03cd852..d21a0ea 100644
--- a/src/donaudb/pg_helper.h
+++ b/src/donaudb/pg_helper.h
@@ -54,17 +54,17 @@ struct PostgresClosure
*/
struct GNUNET_PQ_Context *conn;
+ /**
+ * Name of the current transaction, for debugging.
+ */
+ const char *transaction_name;
+
/**
* Counts how often we have established a fresh @e conn
* to the database. Used to re-prepare statements.
*/
unsigned long long prep_gen;
- /**
- * Name of the current transaction, for debugging.
- */
- const char *transaction_name;
-
};
@@ -78,37 +78,37 @@ struct PostgresClosure
* @param sql actual SQL text
*/
#define PREPARE(pg,name,sql) \
- do { \
- static struct { \
- unsigned long long cnt; \
- struct PostgresClosure *pg; \
- } preps[2]; /* 2 ctrs for taler-auditor-sync*/ \
- unsigned int off = 0; \
+ do { \
+ static struct { \
+ unsigned long long cnt; \
+ struct PostgresClosure *pg; \
+ } preps[2]; /* 2 ctrs for taler-auditor-sync*/ \
+ unsigned int off = 0; \
\
- while ( (NULL != preps[off].pg) && \
- (pg != preps[off].pg) && \
- (off < sizeof(preps) / sizeof(*preps)) ) \
- off++; \
- GNUNET_assert (off < \
- sizeof(preps) / sizeof(*preps)); \
- if (preps[off].cnt < pg->prep_gen) \
- { \
- struct GNUNET_PQ_PreparedStatement ps[] = { \
- GNUNET_PQ_make_prepare (name, sql), \
- GNUNET_PQ_PREPARED_STATEMENT_END \
- }; \
+ while ( (NULL != preps[off].pg) && \
+ (pg != preps[off].pg) && \
+ (off < sizeof(preps) / sizeof(*preps)) ) \
+ off++; \
+ GNUNET_assert (off < \
+ sizeof(preps) / sizeof(*preps)); \
+ if (preps[off].cnt < pg->prep_gen) \
+ { \
+ struct GNUNET_PQ_PreparedStatement ps[] = { \
+ GNUNET_PQ_make_prepare (name, sql), \
+ GNUNET_PQ_PREPARED_STATEMENT_END \
+ }; \
\
- if (GNUNET_OK != \
- GNUNET_PQ_prepare_statements (pg->conn, \
- ps)) \
- { \
- GNUNET_break (0); \
- return GNUNET_DB_STATUS_HARD_ERROR; \
- } \
- preps[off].pg = pg; \
- preps[off].cnt = pg->prep_gen; \
- } \
- } while (0)
+ if (GNUNET_OK != \
+ GNUNET_PQ_prepare_statements (pg->conn, \
+ ps)) \
+ { \
+ GNUNET_break (0); \
+ return GNUNET_DB_STATUS_HARD_ERROR; \
+ } \
+ preps[off].pg = pg; \
+ preps[off].cnt = pg->prep_gen; \
+ } \
+ } while (0)
/**
@@ -120,7 +120,7 @@ struct PostgresClosure
*/
#define TALER_PQ_RESULT_SPEC_AMOUNT(field, \
amountp) TALER_PQ_result_spec_amount ( \
- field,pg->currency,amountp)
+ field,pg->currency,amountp)
#endif
diff --git a/src/donaudb/pg_lookup_charity.c b/src/donaudb/pg_lookup_charity.c
index 90c1ce6..1617f51 100644
--- a/src/donaudb/pg_lookup_charity.c
+++ b/src/donaudb/pg_lookup_charity.c
@@ -37,18 +37,30 @@ DH_PG_lookup_charity (
GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
- GNUNET_PQ_result_spec_string ("charity_url",
- &meta->charity_url),
+ GNUNET_PQ_result_spec_auto_from_type ("charity_pub",
+ &meta->charity_pub),
GNUNET_PQ_result_spec_string ("charity_name",
&meta->charity_name),
+ GNUNET_PQ_result_spec_string ("charity_url",
+ &meta->charity_url),
+ TALER_PQ_RESULT_SPEC_AMOUNT ("max_per_year",
+ meta->max_per_year),
+ TALER_PQ_RESULT_SPEC_AMOUNT ("receipts_to_date",
+ meta->receipts_to_date),
+ GNUNET_PQ_result_spec_uint64 ("current_year",
+ &meta->current_year),
GNUNET_PQ_result_spec_end
};
PREPARE (pg,
"lookup_charity",
"SELECT "
- " charity_name"
+ " charity_pub"
+ " ,charity_name"
" ,charity_url"
+ " ,max_per_year"
+ " ,receipts_to_date"
+ " ,current_year"
" FROM charities"
" WHERE charity_id=$1;");
return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
diff --git a/src/include/donaudb_plugin.h b/src/include/donaudb_plugin.h
index 0351b5c..5ae015c 100644
--- a/src/include/donaudb_plugin.h
+++ b/src/include/donaudb_plugin.h
@@ -104,6 +104,11 @@ struct DONAUDB_CharityMetaData
*/
struct TALER_Amount *receipts_to_date;
+ /**
+ * Current year
+ */
+ uint64_t current_year;
+
};
@@ -177,8 +182,12 @@ typedef void
typedef void
(*DONAUDB_GetCharitiesCallback)(
void *cls,
+ const struct DONAU_CharityPublicKeyP charity_pub,
const char *charity_name,
- const char *charity_url);
+ const char *charity_url,
+ struct TALER_Amount max_per_year,
+ struct TALER_Amount receipts_to_date,
+ uint64_t current_year);
/**
* @brief The plugin API, returned from the plugin's "init" function.
@@ -355,8 +364,7 @@ struct DONAUDB_Plugin
*
* @param cls closure
* @param charity_id
- * @param charity_url
- * @param charity_name
+ * @param meta
* @return database transaction status
*/
enum GNUNET_DB_QueryStatus
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-donau] branch master updated: Added missing charity get data,
gnunet <=