gnunet-svn
[Top][All Lists]
Advanced

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

[taler-donau] 02/02: [lib] work on charity get


From: gnunet
Subject: [taler-donau] 02/02: [lib] work on charity get
Date: Tue, 27 Feb 2024 11:57:16 +0100

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

lukas-matyja pushed a commit to branch master
in repository donau.

commit 7dc8c45a07d31f7da8db8390281c9e1aebc1c4e3
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
AuthorDate: Tue Feb 27 11:57:43 2024 +0100

    [lib] work on charity get
---
 src/include/donau_service.h               |  8 +--
 src/lib/donau_api_charity_get.c           | 87 ++++++++++++++++---------------
 src/lib/donau_api_handle.c                |  8 +--
 src/testing/testing_api_cmd_charity_get.c |  2 +-
 4 files changed, 54 insertions(+), 51 deletions(-)

diff --git a/src/include/donau_service.h b/src/include/donau_service.h
index 9a22129..f3811af 100644
--- a/src/include/donau_service.h
+++ b/src/include/donau_service.h
@@ -838,7 +838,7 @@ struct DONAU_GetCharitiesResponse
       /**
        * Charity status information.
        */
-      struct DONAU_CharitySummary *charity;
+      struct DONAU_CharitySummary charity;
 
       /**
        * Number of charities
@@ -916,7 +916,7 @@ struct DONAU_Charity
   /**
    * public key of the charity
    */
-  struct DONAU_CharitySignatureP charity_pub;
+  struct DONAU_CharityPublicKeyP charity_pub;
 
   /**
     * Max donation amout for this charitiy and @e current_year.
@@ -931,7 +931,7 @@ struct DONAU_Charity
   /**
    * current year
    */
-  uint32_t current_year;
+  uint64_t current_year;
 
 };
 
@@ -1290,4 +1290,4 @@ void
 DONAU_charity_post_delete (
   struct DONAU_CharityDeleteHandle *rgh);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/src/lib/donau_api_charity_get.c b/src/lib/donau_api_charity_get.c
index dba71b2..2ccc7ab 100644
--- a/src/lib/donau_api_charity_get.c
+++ b/src/lib/donau_api_charity_get.c
@@ -72,7 +72,9 @@ struct DONAU_CharityGetHandle
  */
 static enum GNUNET_GenericReturnValue
 handle_charity_get_ok (const json_t *resp_obj,
-                       struct DONAU_CharityGetHandle *cgh)
+                       struct DONAU_CharityGetHandle *cgh,
+                                          struct DONAU_Charity *charity,
+                                          struct DONAU_GetCharityResponse 
*gcresp)
 {
   // const json_t *charity_hist_array;
   const char *name;
@@ -81,22 +83,18 @@ handle_charity_get_ok (const json_t *resp_obj,
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
-  struct DONAU_GetCharityResponse charity_resp = {
-    .hr.reply = resp_obj,
-    .hr.http_status = MHD_HTTP_OK
-  };
+
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_string ("name",
-                             &name),
-    GNUNET_JSON_spec_fixed_auto ("charity_pub",
-                                 
&charity_resp.details.ok.charity->charity_pub),
-    TALER_JSON_spec_amount_any ("max_per_year",
-                                
&charity_resp.details.ok.charity->max_per_year),
-    TALER_JSON_spec_amount_any ("receipts_to_date",
-                                &charity_resp.details.ok.charity->
-                                receipts_to_date),
-    GNUNET_JSON_spec_uint32 ("current_year",
-                             &charity_resp.details.ok.charity->current_year),
+//    GNUNET_JSON_spec_fixed_auto ("charity_pub",
+//                                 &charity->charity_pub),
+//     GNUNET_JSON_spec_string ("name", &name),
+//    TALER_JSON_spec_amount_any ("max_per_year",
+//                                &charity->max_per_year),
+//    TALER_JSON_spec_amount_any ("receipts_to_date",
+//                                &charity->
+//                                receipts_to_date),
+//    GNUNET_JSON_spec_uint64 ("current_year",
+//                             &charity->current_year),
     GNUNET_JSON_spec_end ()
   };
   if (GNUNET_OK !=
@@ -108,7 +106,7 @@ handle_charity_get_ok (const json_t *resp_obj,
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
-  charity_resp.details.ok.charity->name = GNUNET_strdup (name);
+  //charity->name = GNUNET_strdup (name);
 
   /* parse the charity history data */
   // charity_resp.details.ok.charity->num_hist
@@ -143,7 +141,7 @@ handle_charity_get_ok (const json_t *resp_obj,
   // }
 
   cgh->cb (cgh->cb_cls,
-           &charity_resp);
+           gcresp);
   cgh->cb = NULL;
   return GNUNET_OK;
 }
@@ -180,7 +178,9 @@ handle_charity_get_finished (void *cls,
   case MHD_HTTP_OK:
     if (GNUNET_OK !=
         handle_charity_get_ok (j,
-                               cgh))
+                               cgh,
+                                                          
&gcresp.details.ok.charity,
+                                                          &gcresp))
     {
       gcresp.hr.http_status = 0;
       gcresp.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
@@ -248,18 +248,26 @@ DONAU_charity_get (
   cgh->cb_cls = cb_cls;
   char arg_str[sizeof (id) * 2 + 32];
   char timeout_str[32];
-
+  unsigned int tms
+    = (unsigned int) timeout.rel_value_us
+      / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us;
   GNUNET_snprintf (timeout_str,
-                   sizeof (timeout_str),
-                   "%llu",
-                   (unsigned long long)
-                   (timeout.rel_value_us
-                    / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us));
-  GNUNET_snprintf (arg_str,
-                   sizeof (arg_str),
-                   "charities/%llu",
-                                  (unsigned long long)
-                   id);
+                                  sizeof (timeout_str),
+                                  "%u",
+                                  tms);
+  if (tms == 0)
+         GNUNET_snprintf (arg_str,
+                                          sizeof (arg_str),
+                                          "charities/%llu",
+                                          (unsigned long long)
+                                          id);
+  else
+      GNUNET_snprintf (arg_str,
+                       sizeof (arg_str),
+                       "reserves/%llu?timeout_ms=%s",
+                                          (unsigned long long)
+                                          id,
+                       timeout_str);
   cgh->url = TALER_url_join (url,
                              arg_str,
                              NULL);
@@ -279,18 +287,13 @@ DONAU_charity_get (
     GNUNET_free (cgh);
     return NULL;
   }
-  GNUNET_break (CURLE_OK ==
-                curl_easy_setopt (eh,
-                                  CURLOPT_VERBOSE,
-                                  1));
-  GNUNET_break (CURLE_OK ==
-                curl_easy_setopt (eh,
-                                  CURLOPT_TIMEOUT,
-                                  120 /* seconds */));
-  GNUNET_assert (CURLE_OK ==
-                 curl_easy_setopt (eh,
-                                   CURLOPT_HEADERDATA,
-                                   cgh));
+  if (0 != tms)
+  {
+    GNUNET_break (CURLE_OK ==
+                  curl_easy_setopt (eh,
+                                    CURLOPT_TIMEOUT_MS,
+                                    (long) (tms + 100L)));
+  }
   cgh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
                                   eh,
                                   &handle_charity_get_finished,
diff --git a/src/lib/donau_api_handle.c b/src/lib/donau_api_handle.c
index a1c79b0..cc06634 100644
--- a/src/lib/donau_api_handle.c
+++ b/src/lib/donau_api_handle.c
@@ -614,10 +614,10 @@ DONAU_get_keys (
   //                curl_easy_setopt (eh,
   //                                  CURLOPT_HEADERFUNCTION,
   //                                  &header_cb));
-  GNUNET_assert (CURLE_OK ==
-                 curl_easy_setopt (eh,
-                                   CURLOPT_HEADERDATA,
-                                   gkh));
+//  GNUNET_assert (CURLE_OK ==
+//                 curl_easy_setopt (eh,
+//                                   CURLOPT_HEADERDATA,
+//                                   gkh));
   gkh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
                                                eh,
                                                &keys_completed_cb,
diff --git a/src/testing/testing_api_cmd_charity_get.c 
b/src/testing/testing_api_cmd_charity_get.c
index d696def..fede656 100644
--- a/src/testing/testing_api_cmd_charity_get.c
+++ b/src/testing/testing_api_cmd_charity_get.c
@@ -165,7 +165,7 @@ status_run (void *cls,
   ss->cgh = DONAU_charity_get (
     TALER_TESTING_interpreter_get_context (is),
     donau_url,
-    1,
+    4,
     bearer,
     ss->timeout,
     &charity_status_cb,

-- 
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]