diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-10-10 21:13:54 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-10-10 21:13:54 +0200 |
commit | 862ef7cf8db650e3277128638c073746ed5ecedd (patch) | |
tree | d577c59af2b91618572a38b8d7edbdf5680742e1 /src | |
parent | 3cc3a5d6215a3ca4e85c4b44c9a4360739bc4b67 (diff) | |
download | merchant-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.c | 44 |
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); |