gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-merchant] branch master updated: Returning total sum


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant] branch master updated: Returning total sum of wire transferred coins instead of an array about each of them. Adjusting lib accordingly.
Date: Wed, 08 Mar 2017 15:50:52 +0100

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

marcello pushed a commit to branch master
in repository merchant.

The following commit(s) were added to refs/heads/master by this push:
     new 60dc48f  Returning total sum of wire transferred coins instead of an 
array about each of them.  Adjusting lib accordingly.
60dc48f is described below

commit 60dc48f7703b9643c711b42748da021d8a2a056d
Author: Marcello Stanisci <address@hidden>
AuthorDate: Wed Mar 8 15:49:09 2017 +0100

    Returning total sum of wire transferred coins instead
    of an array about each of them.  Adjusting lib accordingly.
---
 src/backend/taler-merchant-httpd_responses.c | 18 +++----
 src/include/taler_merchant_service.h         |  4 +-
 src/lib/merchant_api_track_transaction.c     | 70 ++-----------------------
 src/lib/test_merchant_api.c                  | 76 ++--------------------------
 4 files changed, 15 insertions(+), 153 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_responses.c 
b/src/backend/taler-merchant-httpd_responses.c
index 9c7ef8a..8cbdf6b 100644
--- a/src/backend/taler-merchant-httpd_responses.c
+++ b/src/backend/taler-merchant-httpd_responses.c
@@ -411,33 +411,31 @@ TMH_RESPONSE_make_track_transaction_ok (unsigned int 
num_transfers,
   struct MHD_Response *ret;
   unsigned int i;
   json_t *j_transfers;
+  struct TALER_Amount sum;
 
   j_transfers = json_array ();
   for (i=0;i<num_transfers;i++)
   {
     const struct TALER_MERCHANT_TransactionWireTransfer *transfer = 
&transfers[i];
-    json_t *j_coins;
     unsigned int j;
 
-    j_coins = json_array ();
-    for (j=0;j<transfer->num_coins;j++)
+    sum = transfer->coins[0].amount_with_fee;
+    for (j=1;j<transfer->num_coins;j++)
     {
       const struct TALER_MERCHANT_CoinWireTransfer *coin = &transfer->coins[j];
 
-      GNUNET_assert (0 ==
-                     json_array_append_new (j_coins,
-                                            json_pack ("{s:o, s:o, s:o}",
-                                                       "coin_pub", 
GNUNET_JSON_from_data_auto (&coin->coin_pub),
-                                                       "amount_with_fee", 
TALER_JSON_from_amount (&coin->amount_with_fee),
-                                                       "deposit_fee", 
TALER_JSON_from_amount (&coin->deposit_fee))));
+      GNUNET_assert (GNUNET_SYSERR != TALER_amount_add (&sum,
+                                                        &sum,
+                                                        
&coin->amount_with_fee));
     }
+
     GNUNET_assert (0 ==
                    json_array_append_new (j_transfers,
                                           json_pack ("{s:s, s:o, s:o, s:o}",
                                                      "exchange", exchange_uri,
                                                      "wtid", 
GNUNET_JSON_from_data_auto (&transfer->wtid),
                                                      "execution_time", 
GNUNET_JSON_from_time_abs (transfer->execution_time),
-                                                     "coins", j_coins)));
+                                                     "amount", 
TALER_JSON_from_amount (&sum))));
   }
   ret = TMH_RESPONSE_make_json (j_transfers);
   json_decref (j_transfers);
diff --git a/src/include/taler_merchant_service.h 
b/src/include/taler_merchant_service.h
index b1b2520..68ffe7f 100644
--- a/src/include/taler_merchant_service.h
+++ b/src/include/taler_merchant_service.h
@@ -493,9 +493,7 @@ typedef void
 (*TALER_MERCHANT_TrackTransactionCallback) (void *cls,
                                             unsigned int http_status,
                                            enum TALER_ErrorCode ec,
-                                            const json_t *json,
-                                            unsigned int num_transfers,
-                                            const struct 
TALER_MERCHANT_TransactionWireTransfer *transfers);
+                                            const json_t *json);
 
 
 /**
diff --git a/src/lib/merchant_api_track_transaction.c 
b/src/lib/merchant_api_track_transaction.c
index 787e28c..abb1d29 100644
--- a/src/lib/merchant_api_track_transaction.c
+++ b/src/lib/merchant_api_track_transaction.c
@@ -94,73 +94,11 @@ static int
 parse_track_transaction_ok (struct TALER_MERCHANT_TrackTransactionHandle *tdo,
                             const json_t *json)
 {
-  unsigned int num_transfers = json_array_size (json);
-  struct TALER_MERCHANT_TransactionWireTransfer transfers[num_transfers];
-  unsigned int i;
-
-  if (0 == num_transfers)
-  {
-    /* zero transfers is not a valid reply */
-    GNUNET_break_op (0);
-    return GNUNET_SYSERR;
-  }
-  for (i=0;i<num_transfers;i++)
-  {
-    struct TALER_MERCHANT_TransactionWireTransfer *transfer = &transfers[i];
-    json_t *coins;
-    unsigned int j;
-    struct GNUNET_JSON_Specification spec[] = {
-      GNUNET_JSON_spec_fixed_auto ("wtid",
-                                   &transfer->wtid),
-      GNUNET_JSON_spec_absolute_time ("execution_time",
-                                      &transfer->execution_time),
-      GNUNET_JSON_spec_json ("coins",
-                             &coins),
-      GNUNET_JSON_spec_end()
-    };
-
-    if (GNUNET_OK !=
-        GNUNET_JSON_parse (json_array_get (json, i),
-                           spec,
-                           NULL, NULL))
-    {
-      GNUNET_break_op (0);
-      return GNUNET_SYSERR;
-    }
-    transfer->num_coins = json_array_size (coins);
-    transfer->coins = GNUNET_new_array (transfer->num_coins,
-                                        struct 
TALER_MERCHANT_CoinWireTransfer);
-    for (j=0;j<transfer->num_coins;j++)
-    {
-      struct TALER_MERCHANT_CoinWireTransfer *coin = &transfer->coins[j];
-      struct GNUNET_JSON_Specification coin_spec[] = {
-        GNUNET_JSON_spec_fixed_auto ("coin_pub", &coin->coin_pub),
-        TALER_JSON_spec_amount ("amount_with_fee", &coin->amount_with_fee),
-        TALER_JSON_spec_amount ("deposit_fee", &coin->deposit_fee),
-        GNUNET_JSON_spec_end()
-      };
-      if (GNUNET_OK !=
-          GNUNET_JSON_parse (json_array_get (coins, j),
-                             coin_spec,
-                             NULL, NULL))
-      {
-        GNUNET_break_op (0);
-        GNUNET_JSON_parse_free (spec);
-        free_transfers (i,
-                        transfers);
-        return GNUNET_SYSERR;
-      }
-    }
-    GNUNET_JSON_parse_free (spec);
-  }
   tdo->cb (tdo->cb_cls,
            MHD_HTTP_OK,
           TALER_EC_NONE,
-           json,
-           num_transfers,
-           transfers);
-  free_transfers (num_transfers,
-                  transfers);
+           json);
+
   return GNUNET_OK;
 }
 
@@ -219,9 +157,7 @@ handle_track_transaction_finished (void *cls,
   tdo->cb (tdo->cb_cls,
            response_code,
           TALER_JSON_get_error_code (json),
-           json,
-           0,
-           NULL);
+           json);
 }
 
 
diff --git a/src/lib/test_merchant_api.c b/src/lib/test_merchant_api.c
index ac8a24b..6051a66 100644
--- a/src/lib/test_merchant_api.c
+++ b/src/lib/test_merchant_api.c
@@ -1343,9 +1343,7 @@ static void
 track_transaction_cb (void *cls,
                       unsigned int http_status,
                      enum TALER_ErrorCode ec,
-                      const json_t *json,
-                      unsigned int num_transfers,
-                      const struct TALER_MERCHANT_TransactionWireTransfer 
*transfers)
+                      const json_t *json)
 {
   struct InterpreterState *is = cls;
   struct Command *cmd = &is->commands[is->ip];
@@ -1361,76 +1359,8 @@ track_transaction_cb (void *cls,
     fail (is);
     return;
   }
-  /* Test result vs. expecations... */
-  switch (http_status)
-  {
-  case MHD_HTTP_OK:
-    {
-      const struct Command *ref;
-      struct TALER_Amount ea;
-      struct TALER_Amount wire_fee;
-      struct TALER_Amount coin_contribution;
-
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Successful /track/tracking\n");
-      if (1 != num_transfers)
-      {
-        GNUNET_break (0);
-        json_dumpf (json, stderr, 0);
-        fail (is);
-        return;
-      }
-      ref = find_command (is,
-                          
cmd->details.track_transaction.expected_transfer_ref);
-      GNUNET_assert (NULL != ref);
-      if (0 != memcmp (&ref->details.check_bank_transfer.wtid,
-                       &transfers[0].wtid,
-                       sizeof (struct TALER_WireTransferIdentifierRawP)))
-      {
-        GNUNET_break (0);
-        json_dumpf (json, stderr, 0);
-        fail (is);
-        return;
-      }
-      /* NOTE: this assumes that the wire transfer corresponds to a
-         single coin involved in a pay/deposit.  Thus, this invariant
-         may not always hold in the future depending on how the
-         testcases evolve. */
-      if (1 != transfers[0].num_coins)
-      {
-        GNUNET_break (0);
-        json_dumpf (json, stderr, 0);
-        fail (is);
-        return;
-      }
-      GNUNET_assert (GNUNET_OK ==
-                     TALER_string_to_amount 
(ref->details.check_bank_transfer.amount,
-                                             &ea));
-      GNUNET_assert (GNUNET_OK ==
-                     TALER_string_to_amount 
(cmd->details.track_transaction.wire_fee,
-                                             &wire_fee));
-      GNUNET_assert (GNUNET_OK ==
-                     TALER_amount_subtract (&coin_contribution,
-                                            
&transfers[0].coins[0].amount_with_fee,
-                                            
&transfers[0].coins[0].deposit_fee));
-      GNUNET_assert (GNUNET_OK ==
-                     TALER_amount_subtract (&coin_contribution,
-                                            &coin_contribution,
-                                            &wire_fee));
-      if (0 !=
-          TALER_amount_cmp (&ea,
-                            &coin_contribution))
-      {
-        GNUNET_break (0);
-        json_dumpf (json, stderr, 0);
-        fail (is);
-        return;
-      }
-      break;
-    }
-  default:
-    break;
-  }
+  if (MHD_HTTP_OK != http_status)
+    fail (is);
   next_command (is);
 }
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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