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: Modify /history API


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant] branch master updated: Modify /history API and DB table for order_id-proposal_data mapping. Adapting testcase and lib for that.
Date: Thu, 23 Feb 2017 17:53:18 +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 194c978  Modify /history API and DB table for order_id-proposal_data 
mapping.  Adapting testcase and lib for that.
194c978 is described below

commit 194c97899c81cafa3673f7f7d9db6be8425e0fc2
Author: Marcello Stanisci <address@hidden>
AuthorDate: Thu Feb 23 17:52:26 2017 +0100

    Modify /history API and DB table for order_id-proposal_data
    mapping.  Adapting testcase and lib for that.
---
 src/backend/taler-merchant-httpd_history.c         | 43 +++++-----
 src/backend/taler-merchant-httpd_pay.c             |  7 +-
 src/backend/taler-merchant-httpd_proposal.c        | 15 +---
 .../taler-merchant-httpd_track-transaction.c       |  7 +-
 src/backenddb/plugin_merchantdb_postgres.c         | 99 +++++++++-------------
 src/backenddb/test_merchantdb.c                    | 56 ++++--------
 src/include/taler_merchant_service.h               |  1 +
 src/include/taler_merchantdb_plugin.h              | 34 +++++++-
 src/lib/merchant_api_history.c                     |  8 +-
 src/lib/test_merchant_api.c                        | 13 +--
 10 files changed, 127 insertions(+), 156 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_history.c 
b/src/backend/taler-merchant-httpd_history.c
index 8efd89a..1190a03 100644
--- a/src/backend/taler-merchant-httpd_history.c
+++ b/src/backend/taler-merchant-httpd_history.c
@@ -39,27 +39,19 @@
  */
 
 static void
-history_cb (void *cls,
-           const struct TALER_MerchantPublicKeyP *merchant_pub,
-            const char *exchange_uri,
-            const struct GNUNET_HashCode *h_proposal_data,
-            const struct GNUNET_HashCode *h_wire,
-            struct GNUNET_TIME_Absolute timestamp,
-            struct GNUNET_TIME_Absolute refund,
-            const struct TALER_Amount *total_amount)
+pd_cb (void *cls,
+       const char *order_id,
+       const json_t *proposal_data)
 {
   json_t *response = cls;
   json_t *entry;
 
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "history_cb\n");
+  /*FIXME: more details to be returned*/
   GNUNET_break (NULL !=
-               (entry = json_pack ("{s:o, s:s, s:o, s:o}",
-                                   "h_proposal_data", 
GNUNET_JSON_from_data_auto (h_proposal_data),
-                                   "exchange", exchange_uri,
-                                   "timestamp", GNUNET_JSON_from_time_abs 
(timestamp),
-                                   "total_amount",
-                                   TALER_JSON_from_amount (total_amount))));
+               (entry = json_pack ("{s:s, s:o}",
+                                   "order_id", order_id,
+                                   "proposal_data", proposal_data)));
+
   GNUNET_break (0 == json_array_append (response, entry));
 }
 
@@ -87,6 +79,7 @@ MH_handler_history (struct TMH_RequestHandler *rh,
   json_t *response;
   unsigned int ret;
   unsigned long long seconds;
+  struct MerchantInstance *mi;
   
   response = json_array (); /*FIXME who decrefs this?*/
   str = MHD_lookup_connection_value (connection,
@@ -108,14 +101,24 @@ MH_handler_history (struct TMH_RequestHandler *rh,
                                           TALER_EC_HISTORY_TIMESTAMP_OVERFLOW,
                                            "Timestamp overflowed");
 
+  str = MHD_lookup_connection_value (connection,
+                                     MHD_GET_ARGUMENT_KIND,
+                                     "instance");
+  if (NULL == str)
+    return TMH_RESPONSE_reply_arg_missing (connection,
+                                          TALER_EC_PARAMETER_MISSING,
+                                           "instance");
+  mi = TMH_lookup_instance (str);
+
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Querying history back to %llu\n",
               date.abs_value_us);
 
-  ret = db->find_transactions_by_date (db->cls,
-                                       date,
-                                       history_cb,
-                                       response);
+  ret = db->find_proposal_data_by_date (db->cls,
+                                        date,
+                                        &mi->pubkey,
+                                        pd_cb,
+                                        response);
   if (GNUNET_SYSERR == ret)
     return TMH_RESPONSE_reply_internal_error (connection,
                                              TALER_EC_HISTORY_DB_FETCH_ERROR,
diff --git a/src/backend/taler-merchant-httpd_pay.c 
b/src/backend/taler-merchant-httpd_pay.c
index f3be11a..2d86a12 100644
--- a/src/backend/taler-merchant-httpd_pay.c
+++ b/src/backend/taler-merchant-httpd_pay.c
@@ -922,7 +922,6 @@ parse_pay (struct MHD_Connection *connection, json_t *root, 
struct PayContext *p
   unsigned int coins_index;
   const char *chosen_exchange;
   const char *order_id;
-  struct GNUNET_HashCode h_oid;
   struct TALER_MerchantPublicKeyP merchant_pub;
   int res;
   struct GNUNET_JSON_Specification spec[] = {
@@ -942,13 +941,9 @@ parse_pay (struct MHD_Connection *connection, json_t 
*root, struct PayContext *p
     return res;
   }
 
-  GNUNET_CRYPTO_hash (order_id,
-                      strlen (order_id),
-                      &h_oid);
-
   res = db->find_proposal_data (db->cls,
                                 &pc->proposal_data,
-                                &h_oid,
+                                order_id,
                                 &merchant_pub);
 
 
diff --git a/src/backend/taler-merchant-httpd_proposal.c 
b/src/backend/taler-merchant-httpd_proposal.c
index c0dca1b..ac71653 100644
--- a/src/backend/taler-merchant-httpd_proposal.c
+++ b/src/backend/taler-merchant-httpd_proposal.c
@@ -137,7 +137,6 @@ proposal_put (struct MHD_Connection *connection, json_t 
*order)
   struct TALER_Amount total;
   struct TALER_Amount max_fee;
   const char *order_id;
-  struct GNUNET_HashCode h_oid;
   json_t *products;
   json_t *merchant;
   struct GNUNET_TIME_Absolute timestamp;
@@ -259,15 +258,13 @@ proposal_put (struct MHD_Connection *connection, json_t 
*order)
                             &pdps.purpose,
                             &merchant_sig);
 
-  GNUNET_CRYPTO_hash (order_id,
-                      strlen (order_id),
-                      &h_oid);
-
+  /* fetch timestamp from order */
 
   if (GNUNET_OK !=
       db->insert_proposal_data (db->cls,
-                                &h_oid,
+                                order_id,
                                 &mi->pubkey,
+                                timestamp,
                                 order))
   {
     GNUNET_JSON_parse_free (spec);
@@ -371,7 +368,6 @@ MH_handler_proposal_lookup (struct TMH_RequestHandler *rh,
 {
   const char *order_id;
   const char *instance;
-  struct GNUNET_HashCode h_oid;
   int res;
   json_t *proposal_data;
   struct MerchantInstance *mi;
@@ -394,13 +390,10 @@ MH_handler_proposal_lookup (struct TMH_RequestHandler *rh,
     return TMH_RESPONSE_reply_arg_missing (connection,
                                           TALER_EC_PARAMETER_MISSING,
                                            "order_id");
-  GNUNET_CRYPTO_hash (order_id,
-                      strlen (order_id),
-                      &h_oid);
 
   res = db->find_proposal_data (db->cls,
                                 &proposal_data,
-                                &h_oid,
+                                order_id,
                                 &mi->pubkey);
   if (GNUNET_NO == res)
     return TMH_RESPONSE_reply_not_found (connection, 
diff --git a/src/backend/taler-merchant-httpd_track-transaction.c 
b/src/backend/taler-merchant-httpd_track-transaction.c
index 608c3eb..17b4542 100644
--- a/src/backend/taler-merchant-httpd_track-transaction.c
+++ b/src/backend/taler-merchant-httpd_track-transaction.c
@@ -848,7 +848,6 @@ MH_handler_track_transaction (struct TMH_RequestHandler *rh,
   const char *instance;
   int ret;
   struct GNUNET_HashCode h_instance;
-  struct GNUNET_HashCode h_order_id;
   struct GNUNET_HashCode h_proposal_data;
   struct json_t *proposal_data;
 
@@ -912,10 +911,6 @@ MH_handler_track_transaction (struct TMH_RequestHandler 
*rh,
                       strlen (instance),
                       &h_instance);
 
-  GNUNET_CRYPTO_hash (order_id,
-                      strlen (order_id),
-                      &h_order_id);
-
   tctx->mi = GNUNET_CONTAINER_multihashmap_get (by_id_map,
                                                 &h_instance);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -929,7 +924,7 @@ MH_handler_track_transaction (struct TMH_RequestHandler *rh,
 
   if (GNUNET_YES != db->find_proposal_data (db->cls,
                                             &proposal_data,
-                                            &h_order_id,
+                                            order_id,
                                             &tctx->mi->pubkey))
 
     return TMH_RESPONSE_reply_not_found (connection,
diff --git a/src/backenddb/plugin_merchantdb_postgres.c 
b/src/backenddb/plugin_merchantdb_postgres.c
index 2845924..a6c1feb 100644
--- a/src/backenddb/plugin_merchantdb_postgres.c
+++ b/src/backenddb/plugin_merchantdb_postgres.c
@@ -164,10 +164,11 @@ postgres_initialize (void *cls)
   /* Setup tables */
   PG_EXEC (pg,
            "CREATE TABLE IF NOT EXISTS merchant_proposal_data ("
-           "h_order_id BYTEA NOT NULL"
+           "order_id VARCHAR NOT NULL"
            ",merchant_pub BYTEA NOT NULL"
            ",proposal_data BYTEA NOT NULL"
-          ",PRIMARY KEY (h_order_id, merchant_pub)"
+           ",timestamp INT8 NOT NULL"
+          ",PRIMARY KEY (order_id, merchant_pub)"
            ");");
 
   PG_EXEC (pg,
@@ -279,36 +280,34 @@ postgres_initialize (void *cls)
   PG_PREPARE (pg,
               "insert_proposal_data",
               "INSERT INTO merchant_proposal_data"
-              "(h_order_id"
+              "(order_id"
               ",merchant_pub"
+              ",timestamp"
               ",proposal_data)"
               " VALUES "
-              "($1, $2, $3)",
-              3);
+              "($1, $2, $3, $4)",
+              4);
 
   PG_PREPARE (pg,
               "find_proposal_data",
-              "SELECT proposal_data FROM merchant_proposal_data"
+              "SELECT"
+              " proposal_data"
+              " FROM merchant_proposal_data"
               " WHERE"
-              " h_order_id=$1"
+              " order_id=$1"
               " AND merchant_pub=$2",
               2);
 
   PG_PREPARE (pg,
-              "find_transactions_by_date",
+              "find_proposal_data_by_date",
               "SELECT"
-              " h_proposal_data"
-             ",merchant_pub"
-              ",exchange_uri"
-              ",h_wire"
-              ",timestamp"
-              ",refund_deadline"
-              ",total_amount_val"
-              ",total_amount_frac"
-              ",total_amount_curr"
-              " FROM merchant_transactions"
-              " WHERE timestamp>=$1",
-              1);
+              " proposal_data"
+              ",order_id"
+              " FROM merchant_proposal_data"
+              " WHERE"
+              " timestamp>=$1"
+              " AND merchant_pub=$2",
+              2);
 
   /* Setup prepared "SELECT" statements */
   PG_PREPARE (pg,
@@ -409,7 +408,7 @@ postgres_initialize (void *cls)
 static int
 postgres_find_proposal_data (void *cls,
                              json_t **proposal_data,
-                             const struct GNUNET_HashCode *h_transaction_id,
+                             const char *order_id,
                              const struct TALER_MerchantPublicKeyP 
*merchant_pub)
 {
   struct PostgresClosure *pg = cls;
@@ -417,7 +416,7 @@ postgres_find_proposal_data (void *cls,
   unsigned int i;
 
   struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (h_transaction_id),
+    GNUNET_PQ_query_param_string (order_id),
     GNUNET_PQ_query_param_auto_from_type (merchant_pub),
     GNUNET_PQ_query_param_end
   };
@@ -466,8 +465,9 @@ postgres_find_proposal_data (void *cls,
  */
 static int
 postgres_insert_proposal_data (void *cls,
-                               const struct GNUNET_HashCode *h_transaction_id,
+                               const char *order_id,
                                const struct TALER_MerchantPublicKeyP 
*merchant_pub,
+                               struct GNUNET_TIME_Absolute timestamp,
                                const json_t *proposal_data)
 {
   struct PostgresClosure *pg = cls;
@@ -475,8 +475,9 @@ postgres_insert_proposal_data (void *cls,
   int ret;
 
   struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (h_transaction_id),
+    GNUNET_PQ_query_param_string (order_id),
     GNUNET_PQ_query_param_auto_from_type (merchant_pub),
+    GNUNET_PQ_query_param_absolute_time (&timestamp),
     TALER_PQ_query_param_json (proposal_data),
     GNUNET_PQ_query_param_end
   };
@@ -727,10 +728,11 @@ postgres_store_transfer_to_proof (void *cls,
  * @return numer of found tuples, #GNUNET_SYSERR upon error
  */
 static int
-postgres_find_transactions_by_date (void *cls,
-                                    struct GNUNET_TIME_Absolute date,
-                                    TALER_MERCHANTDB_TransactionCallback cb,
-                                    void *cb_cls)
+postgres_find_proposal_data_by_date (void *cls,
+                                     struct GNUNET_TIME_Absolute date,
+                                     const struct TALER_MerchantPublicKeyP 
*merchant_pub,
+                                     TALER_MERCHANTDB_ProposalDataCallback cb,
+                                     void *cb_cls)
 {
 
   struct PostgresClosure *pg = cls;
@@ -740,10 +742,11 @@ postgres_find_transactions_by_date (void *cls,
 
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_absolute_time (&date),
+    GNUNET_PQ_query_param_auto_from_type (merchant_pub),
     GNUNET_PQ_query_param_end
   };
   result = GNUNET_PQ_exec_prepared (pg->conn,
-                                    "find_transactions_by_date",
+                                    "find_proposal_data_by_date",
                                     params);
   if (PGRES_TUPLES_OK != PQresultStatus (result))
   {
@@ -758,29 +761,14 @@ postgres_find_transactions_by_date (void *cls,
   }
   for (i = 0; i < n; i++)
   {
-    struct TALER_MerchantPublicKeyP merchant_pub;
-    char *exchange_uri;
-    struct GNUNET_HashCode h_wire;
-    struct GNUNET_TIME_Absolute timestamp;
-    struct GNUNET_TIME_Absolute refund_deadline;
-    struct TALER_Amount total_amount;
-    struct GNUNET_HashCode h_proposal_data;
+    char *order_id;
+    json_t *proposal_data;
 
     struct GNUNET_PQ_ResultSpec rs[] = {
-      GNUNET_PQ_result_spec_string ("exchange_uri",
-                                    &exchange_uri),
-      GNUNET_PQ_result_spec_auto_from_type ("h_proposal_data",
-                                    &h_proposal_data),
-      GNUNET_PQ_result_spec_auto_from_type ("merchant_pub",
-                                            &merchant_pub),
-      GNUNET_PQ_result_spec_auto_from_type ("h_wire",
-                                            &h_wire),
-      GNUNET_PQ_result_spec_absolute_time ("timestamp",
-                                           &timestamp),
-      GNUNET_PQ_result_spec_absolute_time ("refund_deadline",
-                                           &refund_deadline),
-      TALER_PQ_result_spec_amount ("total_amount",
-                                   &total_amount),
+      GNUNET_PQ_result_spec_string ("order_id",
+                                    &order_id),
+      TALER_PQ_result_spec_json ("proposal_data",
+                                 &proposal_data),
       GNUNET_PQ_result_spec_end
     };
 
@@ -794,13 +782,8 @@ postgres_find_transactions_by_date (void *cls,
       return GNUNET_SYSERR;
     }
     cb (cb_cls,
-       &merchant_pub,
-        exchange_uri,
-        &h_proposal_data,
-        &h_wire,
-        timestamp,
-        refund_deadline,
-        &total_amount);
+        order_id,
+        proposal_data);
     GNUNET_PQ_cleanup_result (rs);
   }
   PQclear (result);
@@ -1377,7 +1360,6 @@ libtaler_plugin_merchantdb_postgres_init (void *cls)
   plugin->store_coin_to_transfer = &postgres_store_coin_to_transfer;
   plugin->store_transfer_to_proof = &postgres_store_transfer_to_proof;
   plugin->find_transaction = &postgres_find_transaction;
-  plugin->find_transactions_by_date = &postgres_find_transactions_by_date;
   plugin->find_payments_by_hash_and_coin = 
&postgres_find_payments_by_hash_and_coin;
   plugin->find_payments = &postgres_find_payments;
   plugin->find_transfers_by_hash = &postgres_find_transfers_by_hash;
@@ -1385,6 +1367,7 @@ libtaler_plugin_merchantdb_postgres_init (void *cls)
   plugin->find_proof_by_wtid = &postgres_find_proof_by_wtid;
   plugin->insert_proposal_data = &postgres_insert_proposal_data;
   plugin->find_proposal_data = &postgres_find_proposal_data;
+  plugin->find_proposal_data_by_date = &postgres_find_proposal_data_by_date;
 
   return plugin;
 }
diff --git a/src/backenddb/test_merchantdb.c b/src/backenddb/test_merchantdb.c
index c8366f3..9747f7a 100644
--- a/src/backenddb/test_merchantdb.c
+++ b/src/backenddb/test_merchantdb.c
@@ -60,11 +60,6 @@ static int result;
 static struct TALER_MERCHANTDB_Plugin *plugin;
 
 /**
- * Hash of the (fictitious) transaction id.  Set to some random value.
- */
-static struct GNUNET_HashCode h_transaction_id;
-
-/**
  * Hash of the wire transfer address.  Set to some random value.
  */
 static struct GNUNET_HashCode h_wire;
@@ -72,7 +67,7 @@ static struct GNUNET_HashCode h_wire;
 /**
  * Transaction ID.
  */
-char *transaction_id;
+const char *order_id;
 
 /**
  * Proposal's hash
@@ -187,32 +182,18 @@ transaction_cb (void *cls,
                                 &amount_with_fee));
 }
 
-
 /**
- * Function called with information about a transaction. Checks whether the
- * returned tuple
+ * Callback for `find_proposal_data_by_date`.
  *
  * @param cls closure
- * @param transaction_id of the contract
- * @param merchant_pub merchant's public key
- * @param exchange_uri URI of the exchange
- * @param h_wire hash of our wire details
- * @param timestamp time of the confirmation
- * @param refund refund deadline
- * @param total_amount total amount we receive for the contract after fees
+ * @param order_id order id
+ * @param proposal_data proposal data
  */
-
 static void
-history_cb (void *cls,
-           const struct TALER_MerchantPublicKeyP *merchant_pub,
-            const char *exchange_uri,
-            const struct GNUNET_HashCode *h_proposal_data,
-            const struct GNUNET_HashCode *h_wire,
-            struct GNUNET_TIME_Absolute timestamp,
-            struct GNUNET_TIME_Absolute refund,
-            const struct TALER_Amount *total_amount)
+pd_cb (void *cls,
+       const char *order_id,
+       const json_t *proposal_data)
 {
-  /*Just a stub*/
   return;
 }
 
@@ -336,10 +317,7 @@ run (void *cls)
   /* Prepare data for 'store_payment()' */
   RND_BLK (&h_wire);
   RND_BLK (&h_proposal_data);
-  transaction_id = "test_ID";
-  GNUNET_CRYPTO_hash (transaction_id,
-                      strlen (transaction_id),
-                      &h_transaction_id);
+  order_id = "test_ID";
   RND_BLK (&signkey_pub);
   RND_BLK (&merchant_pub);
   RND_BLK (&wtid);
@@ -371,8 +349,9 @@ run (void *cls)
 
   FAILIF (GNUNET_OK !=
           plugin->insert_proposal_data (plugin->cls,
-                                        &h_transaction_id,
+                                        order_id,
                                         &merchant_pub,
+                                        timestamp,
                                         proposal_data));
 
   json_t *out;
@@ -380,9 +359,15 @@ run (void *cls)
   FAILIF (GNUNET_OK !=
           plugin->find_proposal_data (plugin->cls,
                                       &out, // plain data
-                                      &h_transaction_id,
+                                      order_id,
                                       &merchant_pub));
 
+  FAILIF (1 !=
+          plugin->find_proposal_data_by_date (plugin->cls,
+                                              fake_now,
+                                              &merchant_pub,
+                                              pd_cb,
+                                              NULL));
   FAILIF (GNUNET_OK !=
           plugin->store_transaction (plugin->cls,
                                      &h_proposal_data,
@@ -420,13 +405,6 @@ run (void *cls)
                                     &transaction_cb,
                                     NULL));
 
-  /* FIXME: put here find_transactions_by_date () */
-  FAILIF (1 !=
-          plugin->find_transactions_by_date (plugin->cls,
-                                             fake_now,
-                                             history_cb,
-                                             NULL));
-
   FAILIF (GNUNET_OK !=
           plugin->find_payments (plugin->cls,
                                  &h_proposal_data,
diff --git a/src/include/taler_merchant_service.h 
b/src/include/taler_merchant_service.h
index 99bab17..2e2af85 100644
--- a/src/include/taler_merchant_service.h
+++ b/src/include/taler_merchant_service.h
@@ -560,6 +560,7 @@ typedef void
 struct TALER_MERCHANT_HistoryOperation *
 TALER_MERCHANT_history (struct GNUNET_CURL_Context *ctx,
                         const char *backend_uri,
+                        const char *instance,
                         struct GNUNET_TIME_Absolute date,
                         TALER_MERCHANT_HistoryOperationCallback history_cb,
                         void *history_cb_cls);
diff --git a/src/include/taler_merchantdb_plugin.h 
b/src/include/taler_merchantdb_plugin.h
index 33102a0..befa23d 100644
--- a/src/include/taler_merchantdb_plugin.h
+++ b/src/include/taler_merchantdb_plugin.h
@@ -32,6 +32,18 @@ struct TALER_MERCHANTDB_Plugin;
 
 
 /**
+ * Tipically called by `find_proposal_data_by_date`.
+ *
+ * @param cls closure
+ * @param order_id order id
+ * @param proposal_data proposal data related to order id
+ */
+ typedef void
+ (*TALER_MERCHANTDB_ProposalDataCallback)(void *cls,
+                                          const char *order_id,
+                                          const json_t *proposal_data);
+
+/**
  * Function called with information about a transaction.
  *
  * @param cls closure
@@ -158,8 +170,9 @@ struct TALER_MERCHANTDB_Plugin
    */
   int
   (*insert_proposal_data) (void *cls,
-                           const struct GNUNET_HashCode *h_transaction_id,
+                           const char *order_id,
                            const struct TALER_MerchantPublicKeyP *merchant_pub,
+                           struct GNUNET_TIME_Absolute timestamp,
                            const json_t *proposal_data);
 
 
@@ -177,11 +190,28 @@ struct TALER_MERCHANTDB_Plugin
   int
   (*find_proposal_data) (void *cls,
                          json_t **proposal_data,
-                         const struct GNUNET_HashCode *h_transaction_id,
+                         const char *order_id,
                          const struct TALER_MerchantPublicKeyP *merchant_pub);
 
 
   /**
+   * Return proposal data and order id for all proposals younger than
+   * date.
+   *
+   * @param cls closure
+   * @param date limit to the oldest record
+   * @param cb callback called with proposal data and order id
+   * @param cb_cls closure for cb
+   */
+  int
+  (*find_proposal_data_by_date) (void *cls,
+                                 struct GNUNET_TIME_Absolute date,
+                                 const struct TALER_MerchantPublicKeyP 
*merchant_pub,
+                                 TALER_MERCHANTDB_ProposalDataCallback cb,
+                                 void *cb_cls);
+
+
+  /**
    * Insert transaction data into the database.
    *
    * @param cls closure
diff --git a/src/lib/merchant_api_history.c b/src/lib/merchant_api_history.c
index 39f9bd8..d0dffd6 100644
--- a/src/lib/merchant_api_history.c
+++ b/src/lib/merchant_api_history.c
@@ -113,7 +113,7 @@ history_raw_cb (void *cls,
     break;
   case MHD_HTTP_BAD_REQUEST:
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-               "Wrong parameter passed in URL\n");
+               "Wrong/missing URL parameter\n");
     break;
   default:
     /* unexpected response code */
@@ -144,6 +144,7 @@ history_raw_cb (void *cls,
 struct TALER_MERCHANT_HistoryOperation *
 TALER_MERCHANT_history (struct GNUNET_CURL_Context *ctx,
                         const char *backend_uri,
+                        const char *instance,
                         struct GNUNET_TIME_Absolute date,
                         TALER_MERCHANT_HistoryOperationCallback history_cb,
                         void *history_cb_cls)
@@ -158,9 +159,10 @@ TALER_MERCHANT_history (struct GNUNET_CURL_Context *ctx,
   ho->cb_cls = history_cb_cls;
   seconds = date.abs_value_us / 1000LL / 1000LL;
   GNUNET_asprintf (&ho->url,
-                   "%s/history?date=%llu",
+                   "%s/history?date=%llu&instance=%s",
                    backend_uri,
-                   seconds);
+                   seconds,
+                   instance);
   eh = curl_easy_init ();
   if (CURLE_OK != curl_easy_setopt (eh,
                                     CURLOPT_URL,
diff --git a/src/lib/test_merchant_api.c b/src/lib/test_merchant_api.c
index f0fca8e..700b56b 100644
--- a/src/lib/test_merchant_api.c
+++ b/src/lib/test_merchant_api.c
@@ -753,23 +753,13 @@ history_cb (void *cls,
             const json_t *json)
 {
   struct InterpreterState *is = cls;
-  struct Command *cmd = &is->commands[is->ip];
-  unsigned int nelements;
 
   if (MHD_HTTP_OK != http_status)
   {
     fail (is);
     return;
   }
-  nelements = json_array_size (json);
-  if (nelements != (cmd->details.history.nresult * (instance_idx + 1)))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Did not get as many history entries as expected\n");
-    fail (is);
-    return;
-  }
-
+  /*FIXME: put check on number of expected entries*/
   next_command (is);
 }
 
@@ -1974,6 +1964,7 @@ interpreter_run (void *cls)
     if (NULL ==
        (cmd->details.history.ho = TALER_MERCHANT_history (ctx,
                                                          MERCHANT_URI,
+                                                          instance,
                                                          
cmd->details.history.date,
                                                          history_cb,
                                                          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]