summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-09-23 11:10:09 +0200
committerChristian Grothoff <christian@grothoff.org>2023-09-23 11:10:09 +0200
commit493f8fdc92265f421878e805a4dc4ab5b9a6038d (patch)
tree65360d950e2099d9f9859db7cdce2d687ed5ce56
parent515ae722f5a1c48e73a3cfb205719ec7443031b6 (diff)
downloadexchange-493f8fdc92265f421878e805a4dc4ab5b9a6038d.tar.gz
exchange-493f8fdc92265f421878e805a4dc4ab5b9a6038d.tar.bz2
exchange-493f8fdc92265f421878e805a4dc4ab5b9a6038d.zip
update fakebank to match latest core bank API with 3 /withdrawals endpoints moved top-level
-rw-r--r--src/bank-lib/Makefile.am6
-rw-r--r--src/bank-lib/fakebank_bank.c140
-rw-r--r--src/bank-lib/fakebank_bank_get_withdrawals.c (renamed from src/bank-lib/fakebank_bank_get_accounts_withdrawals.c)34
-rw-r--r--src/bank-lib/fakebank_bank_get_withdrawals.h (renamed from src/bank-lib/fakebank_bank_get_accounts_withdrawals.h)12
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_abort.c (renamed from src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c)29
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_abort.h (renamed from src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h)8
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_confirm.c (renamed from src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c)32
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_confirm.h (renamed from src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h)8
8 files changed, 92 insertions, 177 deletions
diff --git a/src/bank-lib/Makefile.am b/src/bank-lib/Makefile.am
index 783ed825c..3458b7a01 100644
--- a/src/bank-lib/Makefile.am
+++ b/src/bank-lib/Makefile.am
@@ -69,11 +69,11 @@ libtalerfakebank_la_SOURCES = \
fakebank_bank.c fakebank_bank.h \
fakebank_bank_accounts_withdrawals.c fakebank_bank_accounts_withdrawals.h \
fakebank_bank_get_accounts.c fakebank_bank_get_accounts.h \
- fakebank_bank_get_accounts_withdrawals.c fakebank_bank_get_accounts_withdrawals.h \
+ fakebank_bank_get_withdrawals.c fakebank_bank_get_withdrawals.h \
fakebank_bank_get_root.c fakebank_bank_get_root.h \
fakebank_bank_post_accounts_withdrawals.c fakebank_bank_post_accounts_withdrawals.h \
- fakebank_bank_post_accounts_withdrawals_abort.c fakebank_bank_post_accounts_withdrawals_abort.h \
- fakebank_bank_post_accounts_withdrawals_confirm.c fakebank_bank_post_accounts_withdrawals_confirm.h \
+ fakebank_bank_post_withdrawals_abort.c fakebank_bank_post_withdrawals_abort.h \
+ fakebank_bank_post_withdrawals_confirm.c fakebank_bank_post_withdrawals_confirm.h \
fakebank_bank_testing_register.c fakebank_bank_testing_register.h \
fakebank_tbr.c fakebank_tbr.h \
fakebank_tbr_get_history.c fakebank_tbr_get_history.h \
diff --git a/src/bank-lib/fakebank_bank.c b/src/bank-lib/fakebank_bank.c
index 8c3c48d10..ec7862ac7 100644
--- a/src/bank-lib/fakebank_bank.c
+++ b/src/bank-lib/fakebank_bank.c
@@ -31,11 +31,11 @@
#include "fakebank_tbr.h"
#include "fakebank_twg.h"
#include "fakebank_bank_get_accounts.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
#include "fakebank_bank_get_root.h"
#include "fakebank_bank_post_accounts_withdrawals.h"
-#include "fakebank_bank_post_accounts_withdrawals_abort.h"
-#include "fakebank_bank_post_accounts_withdrawals_confirm.h"
+#include "fakebank_bank_post_withdrawals_abort.h"
+#include "fakebank_bank_post_withdrawals_confirm.h"
#include "fakebank_bank_testing_register.h"
@@ -149,6 +149,69 @@ TALER_FAKEBANK_bank_main_ (
url);
}
+ if ( (0 == strncmp (url,
+ "/withdrawals/",
+ strlen ("/withdrawals/"))) &&
+ (0 == strcasecmp (method,
+ MHD_HTTP_METHOD_GET)) )
+ {
+ /* GET /withdrawals/$WID */
+ const char *wid;
+
+ wid = &url[strlen ("/withdrawals/")];
+ return TALER_FAKEBANK_bank_get_withdrawals_ (h,
+ connection,
+ wid);
+ }
+
+ if ( (0 == strncmp (url,
+ "/withdrawals/",
+ strlen ("/withdrawals/"))) &&
+ (0 == strcasecmp (method,
+ MHD_HTTP_METHOD_POST)) )
+ {
+ /* POST /withdrawals/$WID* */
+ const char *wid = url + strlen ("/withdrawals/");
+ const char *opid = strchr (wid,
+ '/');
+ char *wi;
+
+ if (NULL == opid)
+ {
+ /* POST /withdrawals/$WID (not defined) */
+ GNUNET_break_op (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_NOT_FOUND,
+ TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
+ url);
+ }
+ wi = GNUNET_strndup (wid,
+ opid - wid);
+ if (0 == strcmp (opid,
+ "/abort"))
+ {
+ /* POST /withdrawals/$WID/abort */
+ MHD_RESULT ret;
+
+ ret = TALER_FAKEBANK_bank_withdrawals_abort_ (h,
+ connection,
+ wi);
+ GNUNET_free (wi);
+ return ret;
+ }
+ if (0 == strcmp (opid,
+ "/confirm"))
+ {
+ /* POST /withdrawals/$WID/confirm */
+ MHD_RESULT ret;
+
+ ret = TALER_FAKEBANK_bank_withdrawals_confirm_ (h,
+ connection,
+ wi);
+ GNUNET_free (wi);
+ return ret;
+ }
+ }
if (0 == strncmp (url,
"/accounts/",
@@ -297,25 +360,6 @@ TALER_FAKEBANK_bank_main_ (
TALER_EC_GENERIC_CLIENT_INTERNAL_ERROR,
url);
}
- if (0 == strncmp (end_acc,
- "/withdrawals/",
- strlen ("/withdrawals/")))
- {
- /* GET /accounts/$ACCOUNT/withdrawals/$WID */
- const char *wid;
- char *acc;
- MHD_RESULT ret;
-
- acc = GNUNET_strndup (acc_name,
- end_acc - acc_name);
- wid = &end_acc[strlen ("/withdrawals/")];
- ret = TALER_FAKEBANK_bank_get_accounts_withdrawals_ (h,
- connection,
- acc,
- wid);
- GNUNET_free (acc);
- return ret;
- }
if (0 == strcmp (end_acc,
"/cashouts"))
{
@@ -433,58 +477,6 @@ TALER_FAKEBANK_bank_main_ (
GNUNET_free (acc);
return ret;
}
-
- if (0 == strncmp (end_acc,
- "/withdrawals/",
- strlen ("/withdrawals/")))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID* */
- const char *wid = end_acc + strlen ("/withdrawals/");
- const char *opid = strchr (wid,
- '/');
- char *wi;
-
- if (NULL == opid)
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID (not defined) */
- GNUNET_break_op (0);
- GNUNET_free (acc);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
- acc_name);
- }
- wi = GNUNET_strndup (wid,
- opid - wid);
- if (0 == strcmp (opid,
- "/abort"))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID/abort */
- MHD_RESULT ret;
-
- ret = TALER_FAKEBANK_bank_withdrawals_abort_ (h,
- connection,
- acc,
- wi);
- GNUNET_free (wi);
- GNUNET_free (acc);
- return ret;
- }
- if (0 == strcmp (opid,
- "/confirm"))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID/confirm */
- MHD_RESULT ret;
-
- ret = TALER_FAKEBANK_bank_withdrawals_confirm_ (h,
- connection,
- acc,
- wi);
- GNUNET_free (wi);
- GNUNET_free (acc);
- return ret;
- }
- }
}
}
diff --git a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.c b/src/bank-lib/fakebank_bank_get_withdrawals.c
index 176b6fb42..7f65e8660 100644
--- a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.c
+++ b/src/bank-lib/fakebank_bank_get_withdrawals.c
@@ -17,8 +17,8 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_get_accounts_withdrawals.c
- * @brief implements the Taler Bank API "GET /accounts/ACC/withdrawals/WID" handler
+ * @file bank-lib/fakebank_bank_get_withdrawals.c
+ * @brief implements the Taler Bank API "GET /withdrawals/$WID" handler
* @author Christian Grothoff <christian@grothoff.org>
*/
#include "platform.h"
@@ -28,29 +28,26 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
#include "fakebank_common_lookup.h"
/**
- * Handle GET /accounts/${account_name}/withdrawals/{withdrawal_id} request
+ * Handle GET /withdrawals/{withdrawal_id} request
* to the Taler bank access API.
*
* @param h the handle
* @param connection the connection
- * @param account_name name of the account
* @param withdrawal_id withdrawal ID to return status of
* @return MHD result code
*/
MHD_RESULT
-TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
+TALER_FAKEBANK_bank_get_withdrawals_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -65,27 +62,6 @@ TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
return TALER_MHD_REPLY_JSON_PACK (
diff --git a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.h b/src/bank-lib/fakebank_bank_get_withdrawals.h
index 53dd873ec..a753dcee8 100644
--- a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.h
+++ b/src/bank-lib/fakebank_bank_get_withdrawals.h
@@ -21,32 +21,30 @@
* @brief implements the Taler Bank API "GET /accounts/ACC/withdrawals/WID" handler
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_GET_ACCOUNTS_WITHDRAWALS_H
-#define FAKEBANK_BANK_GET_ACCOUNTS_WITHDRAWALS_H
+#ifndef FAKEBANK_BANK_GET_WITHDRAWALS_H
+#define FAKEBANK_BANK_GET_WITHDRAWALS_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
/**
- * Handle GET /accounts/${account_name}/withdrawals/{withdrawal_id} request
+ * Handle GET /withdrawals/{withdrawal_id} request
* to the Taler bank access API.
*
* @param h the handle
* @param connection the connection
- * @param account_name name of the account
* @param withdrawal_id withdrawal ID to return status of
* @return MHD result code
*/
MHD_RESULT
-TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
+TALER_FAKEBANK_bank_get_withdrawals_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c b/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
index 4a252f9b8..f8ebf1b93 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
@@ -17,7 +17,7 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
+ * @file bank-lib/fakebank_bank_post_withdrawals_abort.c
* @brief implement bank API withdrawals /abort endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
@@ -28,7 +28,7 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_post_accounts_withdrawals_abort.h"
+#include "fakebank_bank_post_withdrawals_abort.h"
#include "fakebank_common_lookup.h"
#include "fakebank_common_lp.h"
@@ -37,11 +37,9 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_abort_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -56,27 +54,6 @@ TALER_FAKEBANK_bank_withdrawals_abort_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
if (wo->confirmation_done)
{
GNUNET_assert (0 ==
@@ -84,7 +61,7 @@ TALER_FAKEBANK_bank_withdrawals_abort_ (
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_CONFLICT,
TALER_EC_BANK_ABORT_CONFIRM_CONFLICT,
- account_name);
+ withdrawal_id);
}
wo->aborted = true;
TALER_FAKEBANK_notify_withdrawal_ (h,
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h b/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
index ba99e493e..fcc94e201 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
@@ -21,8 +21,8 @@
* @brief implement bank API withdrawals /abort endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_ABORT_H
-#define FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_ABORT_H
+#ifndef FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_H
+#define FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
@@ -32,11 +32,10 @@
/**
- * Handle POST /accounts/{account_name}/withdrawals/{withdrawal_id}/abort request.
+ * Handle POST /withdrawals/{withdrawal_id}/abort request.
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -44,7 +43,6 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_abort_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
#endif
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
index 232b4f92f..90aaf5e2c 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
@@ -17,7 +17,7 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
+ * @file bank-lib/fakebank_bank_post_withdrawals_confirm.c
* @brief implement bank API withdrawals /confirm endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
@@ -28,18 +28,17 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_post_accounts_withdrawals_confirm.h"
+#include "fakebank_bank_post_withdrawals_confirm.h"
#include "fakebank_common_lookup.h"
#include "fakebank_common_lp.h"
#include "fakebank_common_make_admin_transfer.h"
/**
- * Handle POST /accounts/{account_name}/withdrawals/{withdrawal_id}/confirm request.
+ * Handle POST /withdrawals/{withdrawal_id}/confirm request.
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -47,11 +46,9 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_confirm_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -66,27 +63,6 @@ TALER_FAKEBANK_bank_withdrawals_confirm_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
if (NULL == wo->exchange_account)
{
GNUNET_assert (0 ==
@@ -103,7 +79,7 @@ TALER_FAKEBANK_bank_withdrawals_confirm_ (
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_CONFLICT,
TALER_EC_BANK_CONFIRM_ABORT_CONFLICT,
- account_name);
+ withdrawal_id);
}
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
index 2c301ca2c..56cd2deda 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
@@ -17,12 +17,12 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
+ * @file bank-lib/fakebank_bank_post_withdrawals_confirm.h
* @brief implement bank API withdrawals /confirm endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_CONFIRM_H
-#define FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_CONFIRM_H
+#ifndef FAKEBANK_BANK_POST_WITHDRAWALS_CONFIRM_H
+#define FAKEBANK_BANK_POST_WITHDRAWALS_CONFIRM_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
@@ -36,7 +36,6 @@
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -44,7 +43,6 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_confirm_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
#endif