diff options
author | Christian Grothoff <christian@grothoff.org> | 2024-03-03 11:45:01 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2024-03-03 11:45:01 +0100 |
commit | 75067210fead522fc72327bfa3ac5504d7eed28c (patch) | |
tree | beed191e9e6561375672328c874b190dc5d283ce /src/mhd/mhd_parsing.c | |
parent | 295be9df8e96d55df0d58940dcfeee3f3a93840d (diff) | |
download | exchange-75067210fead522fc72327bfa3ac5504d7eed28c.tar.xz |
add helper to parse amounts given as query parameters
Diffstat (limited to 'src/mhd/mhd_parsing.c')
-rw-r--r-- | src/mhd/mhd_parsing.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/mhd/mhd_parsing.c b/src/mhd/mhd_parsing.c index 381b064fa..1e8258f55 100644 --- a/src/mhd/mhd_parsing.c +++ b/src/mhd/mhd_parsing.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2014--2020 Taler Systems SA + Copyright (C) 2014--2024 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -246,6 +246,37 @@ TALER_MHD_parse_request_arg_number (struct MHD_Connection *connection, enum GNUNET_GenericReturnValue +TALER_MHD_parse_request_arg_amount (struct MHD_Connection *connection, + const char *name, + struct TALER_Amount *val) +{ + const char *ts; + + ts = MHD_lookup_connection_value (connection, + MHD_GET_ARGUMENT_KIND, + name); + if (NULL == ts) + return GNUNET_OK; + if (GNUNET_OK != + TALER_string_to_amount (ts, + val)) + { + MHD_RESULT mret; + + GNUNET_break_op (0); + mret = TALER_MHD_reply_with_error (connection, + MHD_HTTP_BAD_REQUEST, + TALER_EC_GENERIC_PARAMETER_MALFORMED, + name); + return (MHD_YES == mret) + ? GNUNET_NO + : GNUNET_SYSERR; + } + return GNUNET_OK; +} + + +enum GNUNET_GenericReturnValue TALER_MHD_parse_json_data (struct MHD_Connection *connection, const json_t *root, struct GNUNET_JSON_Specification *spec) |