gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: more work on API atomization


From: gnunet
Subject: [taler-exchange] branch master updated: more work on API atomization
Date: Mon, 03 Jul 2023 17:26:02 +0200

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

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 75ea3572 more work on API atomization
75ea3572 is described below

commit 75ea35722be6b39eadbe1918a0cc88a9ecd4b2d5
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Jul 3 17:22:33 2023 +0200

    more work on API atomization
---
 src/include/taler_exchange_service.h        | 21 ++++++++-----
 src/lib/exchange_api_kyc_check.c            | 47 +++++++++++++----------------
 src/testing/testing_api_cmd_kyc_check_get.c | 29 +++++++++---------
 3 files changed, 48 insertions(+), 49 deletions(-)

diff --git a/src/include/taler_exchange_service.h 
b/src/include/taler_exchange_service.h
index d4efc15d..bca75a31 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -4030,7 +4030,9 @@ typedef void
  * Run interaction with exchange to check KYC status
  * of a merchant.
  *
- * @param eh exchange handle to use
+ * @param ctx CURL context
+ * @param url exchange base URL
+ * @param keys keys of the exchange
  * @param requirement_row number identifying the KYC requirement
  * @param h_payto hash of the payto:// URI at @a payment_target
  * @param ut type of the entity performing the KYC check
@@ -4040,13 +4042,16 @@ typedef void
  * @return NULL on error
  */
 struct TALER_EXCHANGE_KycCheckHandle *
-TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle *eh,
-                          uint64_t requirement_row,
-                          const struct TALER_PaytoHashP *h_payto,
-                          enum TALER_KYCLOGIC_KycUserType ut,
-                          struct GNUNET_TIME_Relative timeout,
-                          TALER_EXCHANGE_KycStatusCallback cb,
-                          void *cb_cls);
+TALER_EXCHANGE_kyc_check (
+  struct GNUNET_CURL_Context *ctx,
+  const char *url,
+  struct TALER_EXCHANGE_Keys *keys,
+  uint64_t requirement_row,
+  const struct TALER_PaytoHashP *h_payto,
+  enum TALER_KYCLOGIC_KycUserType ut,
+  struct GNUNET_TIME_Relative timeout,
+  TALER_EXCHANGE_KycStatusCallback cb,
+  void *cb_cls);
 
 
 /**
diff --git a/src/lib/exchange_api_kyc_check.c b/src/lib/exchange_api_kyc_check.c
index 472a7d2d..373dd89a 100644
--- a/src/lib/exchange_api_kyc_check.c
+++ b/src/lib/exchange_api_kyc_check.c
@@ -37,14 +37,14 @@ struct TALER_EXCHANGE_KycCheckHandle
 {
 
   /**
-   * The connection to exchange this request handle will use
+   * The url for this request.
    */
-  struct TALER_EXCHANGE_Handle *exchange;
+  char *url;
 
   /**
-   * The url for this request.
+   * Keys of the exchange.
    */
-  char *url;
+  struct TALER_EXCHANGE_Keys *keys;
 
   /**
    * Handle for the request.
@@ -111,7 +111,6 @@ handle_kyc_check_finished (void *cls,
                                  &status),
         GNUNET_JSON_spec_end ()
       };
-      const struct TALER_EXCHANGE_Keys *key_state;
 
       if (GNUNET_OK !=
           GNUNET_JSON_parse (j,
@@ -126,9 +125,8 @@ handle_kyc_check_finished (void *cls,
       ks.details.ok.kyc_details = kyc_details;
       ks.details.ok.aml_status
         = (enum TALER_AmlDecisionState) status;
-      key_state = TALER_EXCHANGE_get_keys (kch->exchange);
       if (GNUNET_OK !=
-          TALER_EXCHANGE_test_signing_key (key_state,
+          TALER_EXCHANGE_test_signing_key (kch->keys,
                                            &ks.details.ok.exchange_pub))
       {
         GNUNET_break_op (0);
@@ -249,25 +247,21 @@ handle_kyc_check_finished (void *cls,
 
 
 struct TALER_EXCHANGE_KycCheckHandle *
-TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle *exchange,
-                          uint64_t requirement_row,
-                          const struct TALER_PaytoHashP *h_payto,
-                          enum TALER_KYCLOGIC_KycUserType ut,
-                          struct GNUNET_TIME_Relative timeout,
-                          TALER_EXCHANGE_KycStatusCallback cb,
-                          void *cb_cls)
+TALER_EXCHANGE_kyc_check (
+  struct GNUNET_CURL_Context *ctx,
+  const char *url,
+  struct TALER_EXCHANGE_Keys *keys,
+  uint64_t requirement_row,
+  const struct TALER_PaytoHashP *h_payto,
+  enum TALER_KYCLOGIC_KycUserType ut,
+  struct GNUNET_TIME_Relative timeout,
+  TALER_EXCHANGE_KycStatusCallback cb,
+  void *cb_cls)
 {
   struct TALER_EXCHANGE_KycCheckHandle *kch;
   CURL *eh;
-  struct GNUNET_CURL_Context *ctx;
   char *arg_str;
 
-  if (GNUNET_YES !=
-      TEAH_handle_is_ready (exchange))
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
   {
     char payto_str[sizeof (*h_payto) * 2];
     char *end;
@@ -282,19 +276,19 @@ TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle 
*exchange,
     timeout_ms = timeout.rel_value_us
                  / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us;
     GNUNET_asprintf (&arg_str,
-                     "/kyc-check/%llu/%s/%s?timeout_ms=%llu",
+                     "kyc-check/%llu/%s/%s?timeout_ms=%llu",
                      (unsigned long long) requirement_row,
                      payto_str,
                      TALER_KYCLOGIC_kyc_user_type2s (ut),
                      timeout_ms);
   }
   kch = GNUNET_new (struct TALER_EXCHANGE_KycCheckHandle);
-  kch->exchange = exchange;
   kch->h_payto = *h_payto;
   kch->cb = cb;
   kch->cb_cls = cb_cls;
-  kch->url = TEAH_path_to_url (exchange,
-                               arg_str);
+  kch->url = TALER_url_join (url,
+                             arg_str,
+                             NULL);
   GNUNET_free (arg_str);
   if (NULL == kch->url)
   {
@@ -309,7 +303,7 @@ TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle 
*exchange,
     GNUNET_free (kch);
     return NULL;
   }
-  ctx = TEAH_handle_to_context (exchange);
+  kch->keys = TALER_EXCHANGE_keys_incref (keys);
   kch->job = GNUNET_CURL_job_add_with_ct_json (ctx,
                                                eh,
                                                &handle_kyc_check_finished,
@@ -326,6 +320,7 @@ TALER_EXCHANGE_kyc_check_cancel (struct 
TALER_EXCHANGE_KycCheckHandle *kch)
     GNUNET_CURL_job_cancel (kch->job);
     kch->job = NULL;
   }
+  TALER_EXCHANGE_keys_decref (kch->keys);
   GNUNET_free (kch->url);
   GNUNET_free (kch);
 }
diff --git a/src/testing/testing_api_cmd_kyc_check_get.c 
b/src/testing/testing_api_cmd_kyc_check_get.c
index 7c8bcf72..bbbd9214 100644
--- a/src/testing/testing_api_cmd_kyc_check_get.c
+++ b/src/testing/testing_api_cmd_kyc_check_get.c
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2021 Taler Systems SA
+  Copyright (C) 2021-2023 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as
@@ -114,16 +114,12 @@ check_kyc_run (void *cls,
   const struct TALER_TESTING_Command *res_cmd;
   const uint64_t *requirement_row;
   const struct TALER_PaytoHashP *h_payto;
-  struct TALER_EXCHANGE_Handle *exchange
-    = TALER_TESTING_get_exchange (is);
 
   (void) cmd;
-  if (NULL == exchange)
-    return;
   kcg->is = is;
-  res_cmd = TALER_TESTING_interpreter_lookup_command (kcg->is,
-                                                      kcg->
-                                                      
payment_target_reference);
+  res_cmd = TALER_TESTING_interpreter_lookup_command (
+    kcg->is,
+    kcg->payment_target_reference);
   if (NULL == res_cmd)
   {
     GNUNET_break (0);
@@ -152,13 +148,16 @@ check_kyc_run (void *cls,
     TALER_TESTING_interpreter_fail (kcg->is);
     return;
   }
-  kcg->kwh = TALER_EXCHANGE_kyc_check (exchange,
-                                       *requirement_row,
-                                       h_payto,
-                                       TALER_KYCLOGIC_KYC_UT_INDIVIDUAL,
-                                       GNUNET_TIME_UNIT_SECONDS,
-                                       &check_kyc_cb,
-                                       kcg);
+  kcg->kwh = TALER_EXCHANGE_kyc_check (
+    TALER_TESTING_interpreter_get_context (is),
+    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_keys (is),
+    *requirement_row,
+    h_payto,
+    TALER_KYCLOGIC_KYC_UT_INDIVIDUAL,
+    GNUNET_TIME_UNIT_SECONDS,
+    &check_kyc_cb,
+    kcg);
   GNUNET_assert (NULL != kcg->kwh);
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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