summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2018-07-09 10:05:59 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2018-07-09 10:05:59 +0200
commit7c94a71def217618056a547ac9e8cfa4b2ea1331 (patch)
tree23fbb0c13e7e7b5efb2c928401b17a90e71c53e2 /src
parentc13973626bed030c03748e05e6e15c07a79b3421 (diff)
downloadexchange-7c94a71def217618056a547ac9e8cfa4b2ea1331.tar.gz
exchange-7c94a71def217618056a547ac9e8cfa4b2ea1331.tar.bz2
exchange-7c94a71def217618056a547ac9e8cfa4b2ea1331.zip
Method to mark merchant as KYC-checked.
Diffstat (limited to 'src')
-rw-r--r--src/exchangedb/plugin_exchangedb_postgres.c35
-rw-r--r--src/exchangedb/test_exchangedb.c7
-rw-r--r--src/include/taler_exchangedb_plugin.h12
3 files changed, 52 insertions, 2 deletions
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c
index 9102811b5..d43132bdd 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -1298,6 +1298,7 @@ postgres_prepare (PGconn *db_conn)
* 4 Put money flow event for a merchant.
* 5 Delete money flow records for a fresh-checked merchant.
* 6 Put a merchant.
+ * 7 Change KYC status flag for a merchant.
*/
GNUNET_PQ_make_prepare ("insert_kyc_merchant",
@@ -1306,6 +1307,14 @@ postgres_prepare (PGconn *db_conn)
"($1, FALSE)",
1),
+ GNUNET_PQ_make_prepare ("mark_kyc_merchant",
+ "UPDATE kyc_merchants"
+ " SET"
+ " kyc_checked=TRUE"
+ " WHERE"
+ " payto_url=$1",
+ 1),
+
/* Used in #postgres_select_deposits_missing_wire */
GNUNET_PQ_make_prepare ("deposits_get_overdue",
"SELECT"
@@ -6516,6 +6525,31 @@ postgres_select_deposits_missing_wire (void *cls,
}
/**
+ * Mark a merchant as KYC-checked.
+ *
+ * @param payto_url payto:// URL indentifying the merchant
+ * to check. Note, different banks may have different
+ * policies to check their customers.
+ * @return database transaction status.
+ */
+static enum GNUNET_DB_QueryStatus
+postgres_mark_kyc_merchant (void *cls,
+ struct TALER_EXCHANGEDB_Session *session,
+ const char *payto_url)
+{
+
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_string (payto_url),
+ GNUNET_PQ_query_param_end
+ };
+
+ return GNUNET_PQ_eval_prepared_non_select (session->conn,
+ "mark_kyc_merchant",
+ params);
+}
+
+
+/**
* Insert a merchant into the KYC monitor table.
*
* @param payto_url payto:// URL indentifying the merchant
@@ -6672,6 +6706,7 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
= &postgres_select_deposits_missing_wire;
plugin->insert_kyc_merchant = postgres_insert_kyc_merchant;
+ plugin->mark_kyc_merchant = postgres_mark_kyc_merchant;
return plugin;
}
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 3a8f9e045..6adb2da12 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -2185,8 +2185,11 @@ run (void *cls)
FAILIF (GNUNET_OK !=
plugin->insert_kyc_merchant (NULL,
session,
- "payto:///mock"));
-
+ "payto://mock"));
+ FAILIF (GNUNET_OK !=
+ plugin->mark_kyc_merchant (NULL,
+ session,
+ "payto://mock"));
plugin->preflight (plugin->cls,
session);
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 6d85d1a49..6724be4d2 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -2235,6 +2235,18 @@ struct TALER_EXCHANGEDB_Plugin
struct TALER_EXCHANGEDB_Session *session,
const char *payto_url);
+ /**
+ * Mark a merchant as KYC-checked.
+ *
+ * @param payto_url payto:// URL indentifying the merchant
+ * to check. Note, different banks may have different
+ * policies to check their customers.
+ * @return database transaction status.
+ */
+ enum GNUNET_DB_QueryStatus
+ (*mark_kyc_merchant) (void *cls,
+ struct TALER_EXCHANGEDB_Session *session,
+ const char *payto_url);
};