gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-donau] branch master updated: working on donation units pg


From: gnunet
Subject: [taler-donau] branch master updated: working on donation units pg
Date: Wed, 28 Feb 2024 17:38:16 +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 47fadc9  working on donation units pg
     new e8525a7  Merge remote-tracking branch 'refs/remotes/origin/master'
47fadc9 is described below

commit 47fadc9be7e2800b05aa4c9352845ea84fdd67f3
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Wed Feb 28 16:56:07 2024 +0100

    working on donation units pg
---
 src/donau/donau-httpd_keys.c                       |  24 ++--
 src/donau/donau-httpd_keys.h                       |  10 +-
 src/donaudb/0002-donation_units.sql                |   2 +-
 src/donaudb/Makefile.am                            |   5 +-
 src/donaudb/pg_get_donation_units.c                |  55 ---------
 src/donaudb/pg_insert_charity.h                    |   2 +-
 ...nation_unit_key.c => pg_insert_donation_unit.c} |  21 ++--
 ...nation_unit_key.h => pg_insert_donation_unit.h} |  18 +--
 src/donaudb/pg_iterate_donation_units.c            | 135 +++++++++++++++++++++
 ...onation_units.h => pg_iterate_donation_units.h} |  22 ++--
 src/donaudb/pg_lookup_donation_unit.c              |  58 ---------
 src/donaudb/pg_lookup_donation_unit.h              |  41 -------
 src/donaudb/plugin_donaudb_postgres.c              |  58 +--------
 src/include/donau_crypto_lib.h                     |   4 +-
 src/include/donaudb_plugin.h                       |  92 +++-----------
 15 files changed, 219 insertions(+), 328 deletions(-)

diff --git a/src/donau/donau-httpd_keys.c b/src/donau/donau-httpd_keys.c
index cf58abe..7b91161 100644
--- a/src/donau/donau-httpd_keys.c
+++ b/src/donau/donau-httpd_keys.c
@@ -465,7 +465,7 @@ struct HelperState
 };
 
 /**
- * Closure for #add_donation_unit_key_cb.
+ * Closure for #insert_donation_unit_cb.
  */
 struct DonationUnitKeyCtx
 {
@@ -606,7 +606,7 @@ finish_keys_response (struct DH_KeyStateHandle *ksh)
     // };
 
     // GNUNET_CONTAINER_multihashmap_iterate (ksh->donation_unit_key_map,
-    //                                       &add_donation_unit_key_cb,
+    //                                       &insert_donation_unit_cb,
     //                                       &dkc);
     // ksh->rekey_frequency
     //  = GNUNET_TIME_relative_min (dkc.min_dk_frequency,
@@ -1364,7 +1364,7 @@ DH_keys_get_state ()
 
 
 /**
- * Closure for #add_donation_unit_cb and #add_signkey_cb.
+ * Closure for #insert_donation_unit_cb and #add_signkey_cb.
  */
 struct KeysBuilderContext
 {
@@ -1397,15 +1397,15 @@ struct KeysBuilderContext
  * @return #GNUNET_OK (continue to iterate)
  */
 static enum GNUNET_GenericReturnValue
-add_donation_unitkey_cb (void *cls,
-                         const struct GNUNET_HashCode *h_donation_unit_pub,
-                         void *value)
+insert_donation_unitkey_cb (void *cls,
+                            const struct GNUNET_HashCode *h_donation_unit_pub,
+                            void *value)
 {
   struct KeysBuilderContext *kbc = cls;
   struct HelperDonationUnit *helper_donation_unit = value;
   struct DH_DonationUnitKey *donation_unit_key;
-  struct DONAUDB_DonationUnitKeyMetaData meta =
-  { 0 };
+  // struct TALER_Amount *value;
+  // uint64_t validity_year;
 
   donation_unit_key = GNUNET_CONTAINER_multihashmap_get (
     kbc->ksh->donation_unit_key_map,
@@ -1417,9 +1417,9 @@ add_donation_unitkey_cb (void *cls,
 
   GNUNET_assert (
     0 == json_array_append_new (kbc->donation_units, GNUNET_JSON_PACK (
-                                  TALER_JSON_pack_amount ("value", 
&meta.value),
-                                  GNUNET_JSON_pack_uint64 (
-                                    "year", meta.validity_year),
+                                  TALER_JSON_pack_amount ("value", &value),
+                                  // GNUNET_JSON_pack_uint64 (
+                                  //  "year", validity_year),
                                   GNUNET_JSON_pack_data_auto (
                                     "donation_unit_pub",
                                     &
@@ -1524,7 +1524,7 @@ DH_handler_keys (struct DH_RequestContext *rc,
     GNUNET_assert (NULL != kbc.signkeys);
     GNUNET_assert (NULL != DH_currency);
     GNUNET_CONTAINER_multihashmap_iterate (ksh->helpers->donation_unit_keys,
-                                           &add_donation_unitkey_cb, &kbc);
+                                           &insert_donation_unitkey_cb, &kbc);
     GNUNET_CONTAINER_multipeermap_iterate (ksh->helpers->esign_keys,
                                            &add_signkey_cb, &kbc);
     reply = GNUNET_JSON_PACK (
diff --git a/src/donau/donau-httpd_keys.h b/src/donau/donau-httpd_keys.h
index 9e931a9..3c15f6a 100644
--- a/src/donau/donau-httpd_keys.h
+++ b/src/donau/donau-httpd_keys.h
@@ -50,10 +50,14 @@ struct DH_DonationUnitKey
   struct DONAU_DonationUnitHashP h_donation_unit_pub;
 
   /**
-   * Meta data about the type of the donation unit, containing the validity
-   * year and the value of the donation unit.
+   * Value that the donation unit represents.
    */
-  struct DONAUDB_DonationUnitKeyMetaData meta;
+  struct TALER_Amount value;
+
+  /**
+   * The validity year.
+   */
+  uint64_t validity_year;
 
 };
 
diff --git a/src/donaudb/0002-donation_units.sql 
b/src/donaudb/0002-donation_units.sql
index 73f6a56..ada1ae9 100644
--- a/src/donaudb/0002-donation_units.sql
+++ b/src/donaudb/0002-donation_units.sql
@@ -16,7 +16,7 @@
 
 CREATE TABLE donation_units
   (donation_unit_serial BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
-  ,donation_unit_hash BYTEA PRIMARY KEY CHECK (LENGTH(donation_unit_hash)=64)
+  ,h_donation_unit_pub BYTEA PRIMARY KEY CHECK (LENGTH(h_donation_unit_pub)=64)
   ,donation_unit_pub BYTEA UNIQUE NOT NULL
   ,validity_year INT4 NOT NULL
   ,value taler_amount NOT NULL
diff --git a/src/donaudb/Makefile.am b/src/donaudb/Makefile.am
index 2ab85ac..9747729 100644
--- a/src/donaudb/Makefile.am
+++ b/src/donaudb/Makefile.am
@@ -80,9 +80,8 @@ libtaler_plugin_donaudb_postgres_la_SOURCES = \
   pg_start_read_only.h pg_start_read_only.c \
   pg_insert_signing_key.c pg_insert_signing_key.h \
   pg_lookup_signing_key.h pg_lookup_signing_key.c \
-  pg_add_donation_unit_key.c pg_add_donation_unit_key.h \
-  pg_lookup_donation_unit.c pg_lookup_donation_unit.h \
-  pg_get_donation_units.c pg_get_donation_units.h \
+  pg_insert_donation_unit.c pg_insert_donation_unit.h \
+  pg_iterate_donation_units.c pg_iterate_donation_units.h \
   pg_get_history.h pg_get_history.c \
   pg_get_charities.h pg_get_charities.c \
   pg_insert_charity.h pg_insert_charity.c \
diff --git a/src/donaudb/pg_get_donation_units.c 
b/src/donaudb/pg_get_donation_units.c
deleted file mode 100644
index bd8f4ca..0000000
--- a/src/donaudb/pg_get_donation_units.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-   This file is part of TALER
-   Copyright (C) 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
-   Foundation; either version 3, or (at your option) any later version.
-
-   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along with
-   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-/**
- * @file donaudb/pg_get_donation_units.c
- * @brief Implementation of the get_donation_units function for Postgres
- * @author Johannes Casaburi
- */
-#include <taler/platform.h>
-#include <taler/taler_error_codes.h>
-#include <taler/taler_dbevents.h>
-#include <taler/taler_pq_lib.h>
-#include "pg_get_donation_units.h"
-#include "pg_helper.h"
-
-enum GNUNET_DB_QueryStatus
-DH_PG_get_donation_units (
-  void *cls,
-  struct DONAUDB_DonationUnitKeyMetaData *meta)
-{
-  struct PostgresClosure *pg = cls;
-  struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_end
-  };
-  struct GNUNET_PQ_ResultSpec rs[] = {
-    GNUNET_PQ_result_spec_uint64 ("validity_year",
-                                  &meta->validity_year),
-    TALER_PQ_RESULT_SPEC_AMOUNT ("value",
-                                 &meta->value),
-    GNUNET_PQ_result_spec_end
-  };
-
-  PREPARE (pg,
-           "get_donation_units",
-           "SELECT"
-           " validity_year"
-           ",value"
-           " FROM donation_units");
-  return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
-                                                   "get_donation_units",
-                                                   params,
-                                                   rs);
-}
diff --git a/src/donaudb/pg_insert_charity.h b/src/donaudb/pg_insert_charity.h
index 8c009ce..e375bc7 100644
--- a/src/donaudb/pg_insert_charity.h
+++ b/src/donaudb/pg_insert_charity.h
@@ -15,7 +15,7 @@
  */
 /**
  * @file donaudb/pg_insert_charity.h
- * @brief implementation of the add_donation_unit_key function for Postgres
+ * @brief implementation of the insert_charity function for Postgres
  * @author Johannes Casaburi
  */
 #ifndef PG_INSERT_CHARITY_H
diff --git a/src/donaudb/pg_add_donation_unit_key.c 
b/src/donaudb/pg_insert_donation_unit.c
similarity index 75%
rename from src/donaudb/pg_add_donation_unit_key.c
rename to src/donaudb/pg_insert_donation_unit.c
index a4f217c..8b64646 100644
--- a/src/donaudb/pg_add_donation_unit_key.c
+++ b/src/donaudb/pg_insert_donation_unit.c
@@ -14,38 +14,39 @@
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file donaudb/pg_add_donation_unit_key.c
- * @brief Implementation of the add_donation_unit_key function for Postgres
+ * @file donaudb/pg_insert_donation_unit.c
+ * @brief Implementation of the insert_donation_unit function for Postgres
  * @author Johannes Casaburi
  */
 #include <taler/platform.h>
 #include <taler/taler_error_codes.h>
 #include <taler/taler_dbevents.h>
 #include <taler/taler_pq_lib.h>
-#include "pg_add_donation_unit_key.h"
+#include "pg_insert_donation_unit.h"
 #include "pg_helper.h"
 
 
 enum GNUNET_DB_QueryStatus
-DH_PG_add_donation_unit_key (
+DH_PG_insert_donation_unit (
   void *cls,
+  const struct DONAU_DonationUnitHashP *h_donation_unit_pub,
   const struct DONAU_DonationUnitPublicKey *donation_unit_pub,
-  struct DONAUDB_DonationUnitKeyMetaData *meta)
+  struct TALER_Amount *value,
+  uint64_t validity_year)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam iparams[] = {
-    GNUNET_PQ_query_param_auto_from_type (&meta->donation_unit_hash),
+    GNUNET_PQ_query_param_auto_from_type (h_donation_unit_pub),
     GNUNET_PQ_query_param_auto_from_type (donation_unit_pub),
-    GNUNET_PQ_query_param_uint64 (&meta->validity_year),
-    TALER_PQ_query_param_amount (pg->conn,
-                                 &meta->value),
+    GNUNET_PQ_query_param_uint64 (&validity_year),
+    TALER_PQ_query_param_amount (pg->conn, value),
     GNUNET_PQ_query_param_end
   };
 
   PREPARE (pg,
            "donation_unit_insert",
            "INSERT INTO donation_units "
-           "(donation_unit_hash"
+           "(h_donation_unit_pub"
            ",donation_unit_pub"
            ",validity_year"
            ",value"
diff --git a/src/donaudb/pg_add_donation_unit_key.h 
b/src/donaudb/pg_insert_donation_unit.h
similarity index 69%
rename from src/donaudb/pg_add_donation_unit_key.h
rename to src/donaudb/pg_insert_donation_unit.h
index 88f39ad..c687007 100644
--- a/src/donaudb/pg_add_donation_unit_key.h
+++ b/src/donaudb/pg_insert_donation_unit.h
@@ -14,12 +14,12 @@
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file donaudb/pg_add_donation_unit_key.h
- * @brief implementation of the add_donation_unit_key function for Postgres
+ * @file donaudb/pg_insert_donation_unit.h
+ * @brief implementation of the insert_donation_unit function for Postgres
  * @author Johannes Casaburi
  */
-#ifndef PG_ADD_DONATION_UNIT_KEY_H
-#define PG_ADD_DONATION_UNIT_KEY_H
+#ifndef PG_INSERT_DONATION_UNIT_H
+#define PG_INSERT_DONATION_UNIT_H
 
 #include <taler/taler_util.h>
 #include <taler/taler_json_lib.h>
@@ -30,13 +30,17 @@
  *
  * @param cls closure
  * @param donation_unit_pub the actual donation_unit key
- * @param meta meta information about the donation unit key
+ * @param donation_unit_hash hash of the public key
+ * @param value value that the donation unit represents
+ * @param validity_year validity year
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
-DH_PG_add_donation_unit_key (
+DH_PG_insert_donation_unit (
   void *cls,
+  const struct DONAU_DonationUnitHashP *h_donation_unit_pub,
   const struct DONAU_DonationUnitPublicKey *donation_unit_pub,
-  struct DONAUDB_DonationUnitKeyMetaData *meta);
+  struct TALER_Amount *value,
+  uint64_t validity_year);
 
 #endif
diff --git a/src/donaudb/pg_iterate_donation_units.c 
b/src/donaudb/pg_iterate_donation_units.c
new file mode 100644
index 0000000..41f75e0
--- /dev/null
+++ b/src/donaudb/pg_iterate_donation_units.c
@@ -0,0 +1,135 @@
+/*
+   This file is part of TALER
+   Copyright (C) 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
+   Foundation; either version 3, or (at your option) any later version.
+
+   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along with
+   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+/**
+ * @file donaudb/pg_iterate_donation_units.c
+ * @brief Implementation of the iterate_donation_units function for Postgres
+ * @author Johannes Casaburi
+ */
+#include <taler/platform.h>
+#include <taler/taler_error_codes.h>
+#include <taler/taler_dbevents.h>
+#include <taler/taler_pq_lib.h>
+#include "pg_iterate_donation_units.h"
+#include "pg_helper.h"
+
+/**
+ * Closure for #get_donation_units_cb().
+ */
+struct IterateDonationUnitsContext
+{
+  /**
+   * Function to call per result.
+   */
+  DONAUDB_IterateDonationUnitsCallback cb;
+
+  /**
+   * Closure for @e cb.
+   */
+  void *cb_cls;
+
+  /**
+   * Flag set to #GNUNET_OK as long as everything is fine.
+   */
+  enum GNUNET_GenericReturnValue status;
+
+};
+
+/**
+ * Invoke the callback for each result.
+ *
+ * @param cls a `struct MissingWireContext *`
+ * @param result SQL result
+ * @param num_results number of rows in @a result
+ */
+static void
+iterate_donation_units_cb (void *cls,
+                           PGresult *result,
+                           unsigned int num_results)
+{
+  struct IterateDonationUnitsContext *ctx = cls;
+
+  for (unsigned int i = 0; i < num_results; i++)
+  {
+    struct DONAU_DonationUnitHashP h_donation_unit_pub;
+    struct DONAU_DonationUnitPublicKey donation_unit_pub;
+    uint64_t validity_year;
+    struct TALER_Amount value;
+
+    struct GNUNET_PQ_ResultSpec rs[] = {
+      GNUNET_PQ_result_spec_auto_from_type ("h_donation_unit_pub",
+                                            &h_donation_unit_pub),
+      GNUNET_PQ_result_spec_auto_from_type ("donation_unit_pub",
+                                            &donation_unit_pub),
+      GNUNET_PQ_result_spec_uint64 ("validity_year",
+                                    &validity_year),
+      TALER_PQ_result_spec_amount ("value",
+                                   "EUR", // TODO: Error if using 
TALER_PQ_RESULT_SPEC_AMOUNT
+                                   &value),
+      GNUNET_PQ_result_spec_end
+    };
+
+    if (GNUNET_OK !=
+        GNUNET_PQ_extract_result (result,
+                                  rs,
+                                  i))
+    {
+      GNUNET_break (0);
+      ctx->status = GNUNET_SYSERR;
+      return;
+    }
+    ctx->cb (ctx->cb_cls,
+             h_donation_unit_pub,
+             donation_unit_pub,
+             validity_year,
+             value);
+    GNUNET_PQ_cleanup_result (rs);
+  }
+}
+
+
+enum GNUNET_DB_QueryStatus
+DH_PG_iterate_donation_units (void *cls,
+                              DONAUDB_IterateDonationUnitsCallback cb,
+                              void *cb_cls)
+{
+  struct PostgresClosure *pg = cls;
+  struct IterateDonationUnitsContext ctx = {
+    .cb = cb,
+    .cb_cls = cb_cls,
+    .status = GNUNET_OK
+  };
+  struct GNUNET_PQ_QueryParam params[] = {
+    GNUNET_PQ_query_param_end
+  };
+  enum GNUNET_DB_QueryStatus qs;
+
+  PREPARE (pg,
+           "iterate_donation_units",
+           "SELECT"
+           " h_donation_unit_pub"
+           ",donation_unit_pub"
+           ",validity_year"
+           ",value"
+           " FROM donation_units");
+  qs = GNUNET_PQ_eval_prepared_multi_select (pg->conn,
+                                             "iterate_donation_units",
+                                             params,
+                                             &iterate_donation_units_cb,
+                                             &ctx);
+  if (GNUNET_OK != ctx.status)
+    return GNUNET_DB_STATUS_HARD_ERROR;
+  return qs;
+}
diff --git a/src/donaudb/pg_get_donation_units.h 
b/src/donaudb/pg_iterate_donation_units.h
similarity index 63%
rename from src/donaudb/pg_get_donation_units.h
rename to src/donaudb/pg_iterate_donation_units.h
index 743b0e8..c9fbf88 100644
--- a/src/donaudb/pg_get_donation_units.h
+++ b/src/donaudb/pg_iterate_donation_units.h
@@ -14,26 +14,26 @@
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file donaudb/pg_get_donation_units.h
- * @brief implementation of the get_donation_units function for Postgres
+ * @file donaudb/pg_iterate_donation_units.h
+ * @brief implementation of the iterate_donation_units function for Postgres
  * @author Johannes Casaburi
  */
-#ifndef PG_LOOKUP_DONATION_UNIT_KEY_H
-#define PG_LOOKUP_DONATION_UNIT_KEY_H
+#ifndef PG_ITERATE_DONATION_UNITS_H
+#define PG_ITERATE_DONATION_UNITS_H
 
-#include <taler/taler_util.h>
-#include <taler/taler_json_lib.h>
 #include "donaudb_plugin.h"
+
 /**
- * Lookup information about current donation unit key.
+ * Obtain information about the enabled wire accounts of the exchange.
  *
  * @param cls closure
- * @param[out] meta set to various meta data about the key
+ * @param cb function to call on each account
+ * @param cb_cls closure for @a cb
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
-DH_PG_get_donation_units (
-  void *cls,
-  struct DONAUDB_DonationUnitKeyMetaData *meta);
+DH_PG_iterate_donation_units (void *cls,
+                              DONAUDB_IterateDonationUnitsCallback cb,
+                              void *cb_cls);
 
 #endif
diff --git a/src/donaudb/pg_lookup_donation_unit.c 
b/src/donaudb/pg_lookup_donation_unit.c
deleted file mode 100644
index 03afa5c..0000000
--- a/src/donaudb/pg_lookup_donation_unit.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-   This file is part of TALER
-   Copyright (C) 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
-   Foundation; either version 3, or (at your option) any later version.
-
-   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along with
-   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-/**
- * @file donaudb/pg_lookup_donation_unit.c
- * @brief Implementation of the lookup_donation_unit function for Postgres
- * @author Johannes Casaburi
- */
-#include <taler/platform.h>
-#include <taler/taler_error_codes.h>
-#include <taler/taler_dbevents.h>
-#include <taler/taler_pq_lib.h>
-#include "pg_lookup_donation_unit.h"
-#include "pg_helper.h"
-
-enum GNUNET_DB_QueryStatus
-DH_PG_lookup_donation_unit (
-  void *cls,
-  const struct DONAU_DonationUnitHashP *h_donation_unit_pub,
-  struct DONAUDB_DonationUnitKeyMetaData *meta)
-{
-  struct PostgresClosure *pg = cls;
-  struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (h_donation_unit_pub),
-    GNUNET_PQ_query_param_end
-  };
-  struct GNUNET_PQ_ResultSpec rs[] = {
-    GNUNET_PQ_result_spec_uint64 ("validity_year",
-                                  &meta->validity_year),
-    TALER_PQ_RESULT_SPEC_AMOUNT ("value",
-                                 &meta->value),
-    GNUNET_PQ_result_spec_end
-  };
-
-  PREPARE (pg,
-           "lookup_donation_unit",
-           "SELECT"
-           " validity_year"
-           ",value"
-           " FROM donation_units"
-           " WHERE donation_unit_hash=$1;");
-  return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
-                                                   "lookup_donation_unit",
-                                                   params,
-                                                   rs);
-}
diff --git a/src/donaudb/pg_lookup_donation_unit.h 
b/src/donaudb/pg_lookup_donation_unit.h
deleted file mode 100644
index 152b06b..0000000
--- a/src/donaudb/pg_lookup_donation_unit.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-   This file is part of TALER
-   Copyright (C) 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
-   Foundation; either version 3, or (at your option) any later version.
-
-   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along with
-   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-/**
- * @file donaudb/pg_lookup_donation_unit.h
- * @brief implementation of the lookup_donation_unit function for Postgres
- * @author Johannes Casaburi
- */
-#ifndef PG_LOOKUP_DONATION_UNIT_KEY_H
-#define PG_LOOKUP_DONATION_UNIT_KEY_H
-
-#include <taler/taler_util.h>
-#include <taler/taler_json_lib.h>
-#include "donaudb_plugin.h"
-/**
- * Lookup information about current donation unit key.
- *
- * @param cls closure
- * @param h_donation_unit_pub hash of the donation_unit public key
- * @param[out] meta set to various meta data about the key
- * @return transaction status code
- */
-enum GNUNET_DB_QueryStatus
-DH_PG_lookup_donation_unit (
-  void *cls,
-  const struct DONAU_DonationUnitHashP *h_donation_unit_pub,
-  struct DONAUDB_DonationUnitKeyMetaData *meta);
-
-#endif
diff --git a/src/donaudb/plugin_donaudb_postgres.c 
b/src/donaudb/plugin_donaudb_postgres.c
index 0e81f40..a3ccb7f 100644
--- a/src/donaudb/plugin_donaudb_postgres.c
+++ b/src/donaudb/plugin_donaudb_postgres.c
@@ -49,8 +49,8 @@
 // #include "pg_delete_shard_locks.h"
 // #include "pg_compute_shard.h"
 
-#include "pg_add_donation_unit_key.h"
-#include "pg_lookup_donation_unit.h"
+#include "pg_insert_donation_unit.h"
+#include "pg_iterate_donation_units.h"
 #include "pg_insert_history_entry.h"
 #include "pg_get_history.h"
 #include "pg_insert_issued_receipt.h"
@@ -188,52 +188,6 @@ libtaler_plugin_donaudb_postgres_init (void *cls)
     GNUNET_free (pg);
     return NULL;
   }
-  // if ( (GNUNET_OK !=
-  //      GNUNET_CONFIGURATION_get_value_time (cfg,
-  //                                           "donaudb",
-  //                                           "IDLE_RESERVE_EXPIRATION_TIME",
-  //                                           
&pg->idle_reserve_expiration_time))
-  //     ||
-  //     (GNUNET_OK !=
-  //      GNUNET_CONFIGURATION_get_value_time (cfg,
-  //                                           "donaudb",
-  //                                           "LEGAL_RESERVE_EXPIRATION_TIME",
-  //                                           
&pg->legal_reserve_expiration_time)) )
-  // {
-  //  GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-  //                             "donaudb",
-  //                             "LEGAL/IDLE_RESERVE_EXPIRATION_TIME");
-  //  GNUNET_free (pg->donau_url);
-  //  GNUNET_free (pg->sql_dir);
-  //  GNUNET_free (pg);
-  //  return NULL;
-  // }
-  // if (GNUNET_OK !=
-  //    GNUNET_CONFIGURATION_get_value_time (cfg,
-  //                                         "donaudb",
-  //                                         "AGGREGATOR_SHIFT",
-  //                                         &pg->aggregator_shift))
-  // {
-  //  GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
-  //                             "donaudb",
-  //                             "AGGREGATOR_SHIFT");
-  // }
-  // if (GNUNET_OK !=
-  //    GNUNET_CONFIGURATION_get_value_number (cfg,
-  //                                           "donaudb",
-  //                                           "DEFAULT_PURSE_LIMIT",
-  //                                           &dpl))
-  // {
-  //  GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
-  //                             "donaudb",
-  //                             "DEFAULT_PURSE_LIMIT");
-  //  pg->def_purse_limit = 1;
-  // }
-  // else
-  // {
-  //  pg->def_purse_limit = (uint32_t) dpl;
-  // }
-
   if (GNUNET_OK !=
       TALER_config_get_currency (cfg,
                                  &pg->currency))
@@ -283,10 +237,10 @@ libtaler_plugin_donaudb_postgres_init (void *cls)
   // plugin->gc
   //  = &DH_PG_gc;
 
-  plugin->add_donation_unit_key
-    = &DH_PG_add_donation_unit_key;
-  plugin->lookup_donation_unit
-    = &DH_PG_lookup_donation_unit;
+  plugin->insert_donation_unit
+    = &DH_PG_insert_donation_unit;
+  plugin->iterate_donation_units
+    = &DH_PG_iterate_donation_units;
   plugin->insert_history_entry
     = &DH_PG_insert_history_entry;
   plugin->get_history
diff --git a/src/include/donau_crypto_lib.h b/src/include/donau_crypto_lib.h
index d7fab5b..286fa5d 100644
--- a/src/include/donau_crypto_lib.h
+++ b/src/include/donau_crypto_lib.h
@@ -349,11 +349,11 @@ DONAU_blinded_donation_unit_sig_free (
 // * Compute the hash of the given @a donation_unit_pub.
 // *
 // * @param donation_unit_pub public key to hash
-// * @param[out] donation_unit_hash resulting hash value
+// * @param[out] h_donation_unit_pub resulting hash value
 // */
 // void
 // TALER_donation_unit_pub_hash (const struct DONAU_DonationUnitPublicKey 
*donation_unit_pub,
-//                      struct DONAU_DonationUnitHashP *donation_unit_hash);
+//                      struct DONAU_DonationUnitHashP *h_donation_unit_pub);
 //
 //
 ///**
diff --git a/src/include/donaudb_plugin.h b/src/include/donaudb_plugin.h
index 989aaa6..e25ab9d 100644
--- a/src/include/donaudb_plugin.h
+++ b/src/include/donaudb_plugin.h
@@ -26,28 +26,6 @@
 #include "donau_signatures.h"
 #include "donau_util.h"
 
-/**
- * Meta data about a donation unit key.
- */
-struct DONAUDB_DonationUnitKeyMetaData
-{
-  /**
-   * The value of the donation unit.
-   */
-  struct TALER_Amount value;
-
-  /**
-   * The year for which this donation unit is valid.
-   */
-  uint64_t validity_year;
-
-  /**
-   * Hash code of the donation unit public key.
-   */
-  struct DONAU_DonationUnitHashP donation_unit_hash; // already in 
GNUNET_CRYPTO_BlindSignPublicKey -> part of every public donation unit
-
-};
-
 /**
  * Meta data about an donau signing key.
  */
@@ -131,32 +109,6 @@ struct DONAUDB_DonationUnitKey
 };
 
 
-/**
- * Signature of a function called with information about the donau's
- * donation unit keys.
- *
- * @param cls closure with a `struct DH_KeyStateHandle *`
- * @param donation_unit_pub public key of the donation unit
- * @param info donation unit key information
- */
-typedef void
-(*DONAUDB_DonationUnitCallback)(
-  void *cls,
-  const struct DONAU_DonationUnitPublicKey *donation_unit_pub,
-  struct DONAUDB_DonationUnitKeyMetaData *info);
-
-/**
- * Signature of a function called with information about the donau's
- * donation unit keys.
- *
- * @param cls closure with a `struct DH_KeyStateHandle *`
- * @param info donation unit key information
- */
-typedef void
-(*DONAUDB_GetDonationUnitsCallback)(
-  void *cls,
-  struct DONAUDB_DonationUnitKeyMetaData *info);
-
 /**
  * Signature of a function called with information about the donau's
  * signing keys.
@@ -172,12 +124,23 @@ typedef void
   struct DONAUDB_SignkeyMetaData *meta);
 
 
+/**
+ * Return donation units.
+ *
+ * @param cls closure
+ */
+typedef void
+(*DONAUDB_IterateDonationUnitsCallback)(
+  void *cls,
+  const struct DONAU_DonationUnitHashP h_donation_unit_pub,
+  const struct DONAU_DonationUnitPublicKey donation_unit_pub,
+  uint64_t validity_year,
+  struct TALER_Amount value);
+
 /**
  * Return charities.
  *
  * @param cls closure
- * @param charity_url
- * @param charity_name
  */
 typedef void
 (*DONAUDB_GetCharitiesCallback)(
@@ -193,8 +156,6 @@ typedef void
  * Return history.
  *
  * @param cls closure
- * @param charity_url
- * @param charity_name
  */
 typedef void
 (*DONAUDB_GetHistoryCallback)(
@@ -434,7 +395,7 @@ struct DONAUDB_Plugin
     uint64_t current_year);
 
   /**
-    * Get keys.
+    * Iterate donation units.
     *
     * @param cls closure
     * @param cb callback to invoke on each match
@@ -442,9 +403,9 @@ struct DONAUDB_Plugin
     * @return database transaction status
     */
   enum GNUNET_DB_QueryStatus
-    (*get_keys)(
+    (*iterate_donation_units)(
     void *cls,
-    DONAUDB_GetDonationUnitsCallback cb,
+    DONAUDB_IterateDonationUnitsCallback cb,
     void *cb_cls);
 
   /**
@@ -477,32 +438,19 @@ struct DONAUDB_Plugin
     const uint64_t donation_year);
 
   /**
-    * Get donation_unit_key.
+    * Insert donation_unit.
     *
     * @param cls closure
     * @param donation_unit_pub
-    * @param meta
     * @return database transaction status
     */
   enum GNUNET_DB_QueryStatus
-    (*add_donation_unit_key)(
+    (*insert_donation_unit)(
     void *cls,
     const struct DONAU_DonationUnitPublicKey *donation_unit_pub,
-    struct DONAUDB_DonationUnitKeyMetaData *meta);
-
-  /**
-    * Lookup information about current donation unit key.
-    *
-    * @param cls closure
-    * @param h_donation_unit_pub hash of the donation_unit public key
-    * @param[out] meta set to various meta data about the key
-    * @return transaction status code
-    */
-  enum GNUNET_DB_QueryStatus
-    (*lookup_donation_unit)(
-    void *cls,
     const struct DONAU_DonationUnitHashP *h_donation_unit_pub,
-    struct DONAUDB_DonationUnitKeyMetaData *meta);
+    struct TALER_Amount value,
+    uint64_t validity_year);
 
   /**
     * Insert history entry of a charity

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]