diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2018-07-09 10:05:59 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2018-07-09 10:05:59 +0200 |
commit | 7c94a71def217618056a547ac9e8cfa4b2ea1331 (patch) | |
tree | 23fbb0c13e7e7b5efb2c928401b17a90e71c53e2 | |
parent | c13973626bed030c03748e05e6e15c07a79b3421 (diff) | |
download | exchange-7c94a71def217618056a547ac9e8cfa4b2ea1331.tar.xz |
Method to mark merchant as KYC-checked.
-rw-r--r-- | src/exchangedb/plugin_exchangedb_postgres.c | 35 | ||||
-rw-r--r-- | src/exchangedb/test_exchangedb.c | 7 | ||||
-rw-r--r-- | src/include/taler_exchangedb_plugin.h | 12 |
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); }; |