summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-10-10 21:13:54 +0200
committerChristian Grothoff <christian@grothoff.org>2021-10-10 21:13:54 +0200
commit862ef7cf8db650e3277128638c073746ed5ecedd (patch)
treed577c59af2b91618572a38b8d7edbdf5680742e1 /src
parent3cc3a5d6215a3ca4e85c4b44c9a4360739bc4b67 (diff)
downloadmerchant-862ef7cf8db650e3277128638c073746ed5ecedd.tar.gz
merchant-862ef7cf8db650e3277128638c073746ed5ecedd.tar.bz2
merchant-862ef7cf8db650e3277128638c073746ed5ecedd.zip
-implement logic to persist KYC status returned from exchange
Diffstat (limited to 'src')
-rw-r--r--src/backend/taler-merchant-httpd_private-get-instances-ID-kyc.c44
1 files changed, 38 insertions, 6 deletions
diff --git a/src/backend/taler-merchant-httpd_private-get-instances-ID-kyc.c b/src/backend/taler-merchant-httpd_private-get-instances-ID-kyc.c
index 92b3d6be..da4064d7 100644
--- a/src/backend/taler-merchant-httpd_private-get-instances-ID-kyc.c
+++ b/src/backend/taler-merchant-httpd_private-get-instances-ID-kyc.c
@@ -390,12 +390,27 @@ exchange_check_cb (void *cls,
struct KycContext *kc = ekr->kc;
ekr->kyc = NULL;
- // build up reply in 'kc'
switch (ks->http_status)
{
case MHD_HTTP_OK:
- // STORE in DB: ks->details.kyc_ok.{timestamp,exchange_pub,exchange_sig}
- // FIXME...
+ {
+ enum GNUNET_DB_QueryStatus qs;
+
+ qs = TMH_db->account_kyc_set_status (TMH_db->cls,
+ kc->mi->settings.id,
+ &ekr->h_wire,
+ ekr->exchange_url,
+ ekr->exchange_kyc_serial,
+ &ks->details.kyc_ok.exchange_sig,
+ &ks->details.kyc_ok.exchange_pub,
+ ks->details.kyc_ok.timestamp,
+ true);
+ if (qs < 0)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Failed to store KYC status in database!\n");
+ }
+ }
break;
case MHD_HTTP_ACCEPTED:
GNUNET_assert (
@@ -411,8 +426,26 @@ exchange_check_cb (void *cls,
ekr->payto_uri))));
break;
case MHD_HTTP_NO_CONTENT:
- // STORE in DB: no KYC at this exchange!
- // FIXME...
+ {
+ struct GNUNET_TIME_Absolute now;
+ enum GNUNET_DB_QueryStatus qs;
+
+ now = GNUNET_TIME_absolute_get ();
+ qs = TMH_db->account_kyc_set_status (TMH_db->cls,
+ kc->mi->settings.id,
+ &ekr->h_wire,
+ ekr->exchange_url,
+ ekr->exchange_kyc_serial,
+ NULL,
+ NULL,
+ now,
+ true);
+ if (qs < 0)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Failed to store KYC status in database!\n");
+ }
+ }
break;
default:
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -433,7 +466,6 @@ exchange_check_cb (void *cls,
ks->http_status))));
break;
}
-
GNUNET_CONTAINER_DLL_remove (kc->exchange_pending_head,
kc->exchange_pending_tail,
ekr);