gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-exchange] branch master updated: Add "general_id" fo


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] branch master updated: Add "general_id" for merchants into the DB system.
Date: Wed, 18 Jul 2018 11:30:05 +0200

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 9942032  Add "general_id" for merchants into the DB system.
9942032 is described below

commit 9942032ae9f48cc08dcfc57382d2bd4226b898b3
Author: Marcello Stanisci <address@hidden>
AuthorDate: Wed Jul 18 11:26:11 2018 +0200

    Add "general_id" for merchants into the DB system.
---
 src/exchangedb/plugin_exchangedb_postgres.c | 28 +++++++++++++++++++++++-----
 src/exchangedb/test_exchangedb.c            |  3 +++
 src/include/taler_exchangedb_plugin.h       |  5 +++++
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index c600020..6aeeff6 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -431,10 +431,20 @@ postgres_create_tables (void *cls)
                            ",buf BYTEA NOT NULL"
                            ");"),
 
+
+    /**
+     * The 'general_id' column represents _some_ identificator
+     * from the institution that cares about the merchant KYC status.
+     * If the institution is a bank, then this values might be
+     * _any_ alphanumeric code that uniquely identifies that merchant
+     * at that bank.  Could also be NULL, if that bank's policy
+     * admits so.
+     */
     GNUNET_PQ_make_execute("CREATE TABLE IF NOT EXISTS kyc_merchants "
                            "(merchant_serial_id BIGSERIAL PRIMARY KEY"
                            ",kyc_checked BOOLEAN NOT NULL DEFAULT FALSE"
                            ",payto_url VARCHAR UNIQUE NOT NULL"
+                           ",general_id VARCHAR NOT NULL"
                            ");"),
 
     GNUNET_PQ_make_try_execute ("CREATE INDEX kyc_merchants_payto_url ON "
@@ -1309,7 +1319,8 @@ postgres_prepare (PGconn *db_conn)
 
     GNUNET_PQ_make_prepare ("get_kyc_status",
                             "SELECT"
-                            " kyc_checked"
+                            " general_id"
+                            ",kyc_checked"
                             ",merchant_serial_id"
                             " FROM kyc_merchants"
                             " WHERE payto_url=$1",
@@ -1317,9 +1328,11 @@ postgres_prepare (PGconn *db_conn)
 
     GNUNET_PQ_make_prepare ("insert_kyc_merchant",
                             "INSERT INTO kyc_merchants "
-                            "(payto_url, kyc_checked) VALUES "
-                            "($1, FALSE)",
-                            1),
+                            "(payto_url"
+                            ",general_id"
+                            ",kyc_checked) VALUES "
+                            "($1, $2, FALSE)",
+                            2),
 
 
     /* NOTE: NOT used yet, just _potentially_ needed.  */
@@ -6771,6 +6784,7 @@ postgres_get_kyc_status (void *cls,
   uint8_t status;
   uint64_t merchant_serial_id; 
   enum GNUNET_DB_QueryStatus qs;
+  char *general_id;
 
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_string (payto_url),
@@ -6779,11 +6793,12 @@ postgres_get_kyc_status (void *cls,
 
 
   struct GNUNET_PQ_ResultSpec rs[] = {
+    GNUNET_PQ_result_spec_string ("general_id",
+                                  &general_id),
     GNUNET_PQ_result_spec_auto_from_type ("kyc_checked",
                                           &status),
     GNUNET_PQ_result_spec_uint64 ("merchant_serial_id",
                                   &merchant_serial_id),
-
     GNUNET_PQ_result_spec_end
   };
 
@@ -6798,6 +6813,7 @@ postgres_get_kyc_status (void *cls,
 
   ksc (ksc_cls,
        payto_url,
+       general_id,
        status,
        merchant_serial_id);
 
@@ -6816,10 +6832,12 @@ postgres_get_kyc_status (void *cls,
 static enum GNUNET_DB_QueryStatus
 postgres_insert_kyc_merchant (void *cls,
                               struct TALER_EXCHANGEDB_Session *session,
+                              const char *general_id,
                               const char *payto_url)
 {
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_string (payto_url),
+    GNUNET_PQ_query_param_string (general_id),
     GNUNET_PQ_query_param_end
   };
   return GNUNET_PQ_eval_prepared_non_select (session->conn,
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 0bff60f..16467d5 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -349,6 +349,7 @@ never_called_cb (void *cls,
  *
  * @param cls closure
  * @param payto_url payto URL of this particular merchant (bank account)
+ * @param general_id general identificator valid at the KYC-caring institution
  * @param kyc_checked status of KYC check: if GNUNET_OK, the merchant was
  *        checked at least once, never otherwise.
  * @param merchant_serial_id serial ID identifying this merchant (bank
@@ -358,6 +359,7 @@ never_called_cb (void *cls,
 static void
 kcs (void *cls,
      const char *payto_url,
+     const char *general_id,
      uint8_t kyc_checked,
      uint64_t merchant_serial_id)
 {
@@ -2239,6 +2241,7 @@ run (void *cls)
   FAILIF (GNUNET_OK !=
           plugin->insert_kyc_merchant (NULL,
                                        session,
+                                       "dummy", // NULL segfaults.
                                        "payto://mock"));
   FAILIF (GNUNET_OK !=
           plugin->mark_kyc_merchant (NULL,
diff --git a/src/include/taler_exchangedb_plugin.h 
b/src/include/taler_exchangedb_plugin.h
index 60d1221..2b2d430 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -717,6 +717,7 @@ typedef int
  *
  * @param cls closure
  * @param payto_url payto URL of this particular merchant (bank account)
+ * @param general_id general identificator valid at the KYC-caring institution
  * @param kyc_checked status of KYC check: if GNUNET_OK, the merchant was
  *        checked at least once, never otherwise.
  * @param merchant_serial_id serial ID identifying this merchant (bank
@@ -726,6 +727,7 @@ typedef int
 typedef void
 (*TALER_EXCHANGEDB_KycStatusCallback)(void *cls,
                                       const char *payto_url,
+                                      const char *general_id,
                                       uint8_t kyc_checked,
                                       uint64_t merchant_serial_id);
 
@@ -2246,6 +2248,8 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls closure
    * @param session db session
+   * @param general_id identificator at the KYC-aware institution,
+   *        can be NULL if this is in-line wiht the rules.
    * @param payto_url payto:// URL indentifying the merchant
    *        bank account.
    * @return database transaction status.
@@ -2253,6 +2257,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*insert_kyc_merchant)(void *cls,
                          struct TALER_EXCHANGEDB_Session *session,
+                         const char *general_id,
                          const char *payto_url);
 
   /**

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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