gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-merchant] 01/02: convert refund amount if it is a st


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant] 01/02: convert refund amount if it is a string
Date: Thu, 18 Jan 2018 01:06:04 +0100

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

dold pushed a commit to branch master
in repository merchant.

commit 69eefa56d378058557dc53d67db448b12b70c081
Author: Florian Dold <address@hidden>
AuthorDate: Thu Jan 18 00:57:10 2018 +0100

    convert refund amount if it is a string
---
 src/backend/taler-merchant-httpd.c          | 25 +++++++++++++++++++++++++
 src/backend/taler-merchant-httpd.h          | 12 ++++++++++++
 src/backend/taler-merchant-httpd_proposal.c | 27 +--------------------------
 src/backend/taler-merchant-httpd_refund.c   |  5 +++++
 4 files changed, 43 insertions(+), 26 deletions(-)

diff --git a/src/backend/taler-merchant-httpd.c 
b/src/backend/taler-merchant-httpd.c
index ea3b7b4..572f5cf 100644
--- a/src/backend/taler-merchant-httpd.c
+++ b/src/backend/taler-merchant-httpd.c
@@ -1455,3 +1455,28 @@ TMH_make_absolute_backend_url (struct MHD_Connection 
*connection,
 
   return res;
 }
+
+
+/**
+ * Convert an amount in a JSON object from the string amount format to the JSON
+ * amount format.  Does nothing if the field is missing or already a JSON
+ * object.
+ *
+ * @param json json with the amount to convert
+ * @param field_name name of the field to convert
+ * @returns #GNUNET_OK on success, #GNUNET_SYSERR on invalid format
+ */
+int
+TMH_convert_amount (json_t *json, char *field_name)
+{
+  if (! json_is_string (json_object_get (json, field_name)))
+    return GNUNET_OK;
+  const char *amount_str = json_string_value (json_object_get (json, 
field_name));
+  GNUNET_assert (NULL != amount_str);
+  struct TALER_Amount amount;
+  if (GNUNET_OK != TALER_string_to_amount (amount_str, &amount))
+    return GNUNET_SYSERR;
+  json_object_del (json, field_name);
+  json_object_set_new (json, field_name, TALER_JSON_from_amount (&amount));
+  return GNUNET_OK;
+}
diff --git a/src/backend/taler-merchant-httpd.h 
b/src/backend/taler-merchant-httpd.h
index e86d387..b10b964 100644
--- a/src/backend/taler-merchant-httpd.h
+++ b/src/backend/taler-merchant-httpd.h
@@ -346,4 +346,16 @@ char *
 TMH_make_absolute_backend_url (struct MHD_Connection *connection, char *path, 
...);
 
 
+/**
+ * Convert an amount in a JSON object from the string amount format to the JSON
+ * amount format.  Does nothing if the field is missing or already a JSON
+ * object.
+ *
+ * @param json json with the amount to convert
+ * @param field_name name of the field to convert
+ * @returns #GNUNET_OK on success, #GNUNET_SYSERR on invalid format
+ */
+int
+TMH_convert_amount (json_t *json, char *field_name);
+
 #endif
diff --git a/src/backend/taler-merchant-httpd_proposal.c 
b/src/backend/taler-merchant-httpd_proposal.c
index 33f8d93..97aa193 100644
--- a/src/backend/taler-merchant-httpd_proposal.c
+++ b/src/backend/taler-merchant-httpd_proposal.c
@@ -122,31 +122,6 @@ json_parse_cleanup (struct TM_HandlerContext *hc)
 
 
 /**
- * Convert an amount in a JSON object from the string amount format to the JSON
- * amount format.  Does nothing if the field is missing or already a JSON
- * object.
- *
- * @param json json with the amount to convert
- * @param field_name name of the field to convert
- * @returns #GNUNET_OK on success, #GNUNET_SYSERR on invalid format
- */
-static int
-convert_amount (json_t *json, char *field_name)
-{
-  if (! json_is_string (json_object_get (json, field_name)))
-    return GNUNET_OK;
-  const char *amount_str = json_string_value (json_object_get (json, 
field_name));
-  GNUNET_assert (NULL != amount_str);
-  struct TALER_Amount amount;
-  if (GNUNET_OK != TALER_string_to_amount (amount_str, &amount))
-    return GNUNET_SYSERR;
-  json_object_del (json, field_name);
-  json_object_set_new (json, field_name, TALER_JSON_from_amount (&amount));
-  return GNUNET_OK;
-}
-
-
-/**
  * Transform an order into a proposal and store it in the database.
  * Write the resulting proposal or an error message ot a MHD connection
  *
@@ -216,7 +191,7 @@ proposal_put (struct MHD_Connection *connection,
                          json_string (buf));
   }
 
-  if (GNUNET_OK != convert_amount (order, "amount"))
+  if (GNUNET_OK != TMH_convert_amount (order, "amount"))
     return TMH_RESPONSE_reply_arg_invalid (connection,
                                            TALER_EC_PARAMETER_MALFORMED,
                                            "amount");
diff --git a/src/backend/taler-merchant-httpd_refund.c 
b/src/backend/taler-merchant-httpd_refund.c
index c81be52..8eb4d00 100644
--- a/src/backend/taler-merchant-httpd_refund.c
+++ b/src/backend/taler-merchant-httpd_refund.c
@@ -153,6 +153,11 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
        (NULL == root) )
     return MHD_YES;
 
+  if (GNUNET_OK != TMH_convert_amount (root, "refund"))
+    return TMH_RESPONSE_reply_arg_invalid (connection,
+                                           TALER_EC_PARAMETER_MALFORMED,
+                                           "refund");
+
   res = TMH_PARSE_json_data (connection,
                              root,
                              spec);

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



reply via email to

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