aboutsummaryrefslogtreecommitdiff
path: root/src/bank-lib
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-05-23 23:14:07 +0200
committerFlorian Dold <florian@dold.me>2024-05-23 23:14:12 +0200
commit5804da72ed30b3cea5212bb6e09ebf508f84b311 (patch)
tree12e1e56267b33ff658ce7589e938d35c2fe47ef9 /src/bank-lib
parent71c87d483230167f20426d286dae1d3f2ed24b99 (diff)
downloadexchange-5804da72ed30b3cea5212bb6e09ebf508f84b311.tar.xz
fakebank: remove unspecified, unused POST /withdrawals/* endpoints
Only the unauthenticated GET endpoint for withdrawal operations is used and specified. Aborting and confirmation requires authentication and is part of the /accounts/*/withdrawals/* corebank API.
Diffstat (limited to 'src/bank-lib')
-rw-r--r--src/bank-lib/Makefile.am2
-rw-r--r--src/bank-lib/fakebank_bank.c51
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_abort.c74
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_abort.h48
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_confirm.c116
-rw-r--r--src/bank-lib/fakebank_bank_post_withdrawals_confirm.h48
6 files changed, 0 insertions, 339 deletions
diff --git a/src/bank-lib/Makefile.am b/src/bank-lib/Makefile.am
index a292dcece..ef7704684 100644
--- a/src/bank-lib/Makefile.am
+++ b/src/bank-lib/Makefile.am
@@ -72,8 +72,6 @@ libtalerfakebank_la_SOURCES = \
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_withdrawals_abort.c fakebank_bank_post_withdrawals_abort.h \
- fakebank_bank_post_withdrawals_confirm.c fakebank_bank_post_withdrawals_confirm.h \
fakebank_bank_post_withdrawals_id_op.c fakebank_bank_post_withdrawals_id_op.h \
fakebank_bank_testing_register.c fakebank_bank_testing_register.h \
fakebank_tbr.c fakebank_tbr.h \
diff --git a/src/bank-lib/fakebank_bank.c b/src/bank-lib/fakebank_bank.c
index 7c2d39ab4..e9a437e21 100644
--- a/src/bank-lib/fakebank_bank.c
+++ b/src/bank-lib/fakebank_bank.c
@@ -34,8 +34,6 @@
#include "fakebank_bank_get_withdrawals.h"
#include "fakebank_bank_get_root.h"
#include "fakebank_bank_post_accounts_withdrawals.h"
-#include "fakebank_bank_post_withdrawals_abort.h"
-#include "fakebank_bank_post_withdrawals_confirm.h"
#include "fakebank_bank_post_withdrawals_id_op.h"
#include "fakebank_bank_testing_register.h"
@@ -167,55 +165,6 @@ TALER_FAKEBANK_bank_main_ (
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/",
strlen ("/accounts/")))
diff --git a/src/bank-lib/fakebank_bank_post_withdrawals_abort.c b/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
deleted file mode 100644
index f8ebf1b93..000000000
--- a/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- This file is part of TALER
- (C) 2016-2023 Taler Systems SA
-
- TALER is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with TALER; see the file COPYING. If not,
- see <http://www.gnu.org/licenses/>
-*/
-/**
- * @file bank-lib/fakebank_bank_post_withdrawals_abort.c
- * @brief implement bank API withdrawals /abort endpoint
- * @author Christian Grothoff <christian@grothoff.org>
- */
-#include "platform.h"
-#include <pthread.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_post_withdrawals_abort.h"
-#include "fakebank_common_lookup.h"
-#include "fakebank_common_lp.h"
-
-
-MHD_RESULT
-TALER_FAKEBANK_bank_withdrawals_abort_ (
- struct TALER_FAKEBANK_Handle *h,
- struct MHD_Connection *connection,
- const char *withdrawal_id)
-{
- struct WithdrawalOperation *wo;
-
- GNUNET_assert (0 ==
- pthread_mutex_lock (&h->big_lock));
- wo = TALER_FAKEBANK_lookup_withdrawal_operation_ (h,
- withdrawal_id);
- if (NULL == wo)
- {
- 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,
- withdrawal_id);
- }
- if (wo->confirmation_done)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_CONFLICT,
- TALER_EC_BANK_ABORT_CONFIRM_CONFLICT,
- withdrawal_id);
- }
- wo->aborted = true;
- TALER_FAKEBANK_notify_withdrawal_ (h,
- wo);
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_json (connection,
- json_object (), /* FIXME: #7301 */
- MHD_HTTP_OK);
-}
diff --git a/src/bank-lib/fakebank_bank_post_withdrawals_abort.h b/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
deleted file mode 100644
index 920b0b802..000000000
--- a/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of TALER
- (C) 2016-2023 Taler Systems SA
-
- TALER is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with TALER; see the file COPYING. If not,
- see <http://www.gnu.org/licenses/>
-*/
-/**
- * @file bank-lib/fakebank_bank_post_withdrawals_abort.h
- * @brief implement bank API withdrawals /abort endpoint
- * @author Christian Grothoff <christian@grothoff.org>
- */
-#ifndef FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_H
-#define FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_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"
-
-
-/**
- * Handle POST /withdrawals/{withdrawal_id}/abort request.
- *
- * @param h our fakebank handle
- * @param connection the connection
- * @param withdrawal_id the withdrawal operation identifier
- * @return MHD result code
- */
-MHD_RESULT
-TALER_FAKEBANK_bank_withdrawals_abort_ (
- struct TALER_FAKEBANK_Handle *h,
- struct MHD_Connection *connection,
- const char *withdrawal_id);
-
-#endif
diff --git a/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
deleted file mode 100644
index b6fcc3152..000000000
--- a/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- This file is part of TALER
- (C) 2016-2023 Taler Systems SA
-
- TALER is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with TALER; see the file COPYING. If not,
- see <http://www.gnu.org/licenses/>
-*/
-/**
- * @file bank-lib/fakebank_bank_post_withdrawals_confirm.c
- * @brief implement bank API withdrawals /confirm endpoint
- * @author Christian Grothoff <christian@grothoff.org>
- */
-#include "platform.h"
-#include <pthread.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_post_withdrawals_confirm.h"
-#include "fakebank_common_lookup.h"
-#include "fakebank_common_lp.h"
-#include "fakebank_common_make_admin_transfer.h"
-
-
-MHD_RESULT
-TALER_FAKEBANK_bank_withdrawals_confirm_ (
- struct TALER_FAKEBANK_Handle *h,
- struct MHD_Connection *connection,
- const char *withdrawal_id)
-{
- struct WithdrawalOperation *wo;
-
- GNUNET_assert (0 ==
- pthread_mutex_lock (&h->big_lock));
- wo = TALER_FAKEBANK_lookup_withdrawal_operation_ (h,
- withdrawal_id);
- if (NULL == wo)
- {
- 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,
- withdrawal_id);
- }
- if (NULL == wo->amount)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_BANK_POST_WITHDRAWAL_OPERATION_REQUIRED,
- NULL);
- }
- if (NULL == wo->exchange_account)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_BANK_POST_WITHDRAWAL_OPERATION_REQUIRED,
- NULL);
- }
- if (wo->aborted)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_CONFLICT,
- TALER_EC_BANK_CONFIRM_ABORT_CONFLICT,
- withdrawal_id);
- }
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- if (GNUNET_OK !=
- TALER_FAKEBANK_make_admin_transfer_ (
- h,
- wo->debit_account->account_name,
- wo->exchange_account->account_name,
- wo->amount,
- &wo->reserve_pub,
- &wo->row_id,
- &wo->timestamp))
- {
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_CONFLICT,
- TALER_EC_BANK_DUPLICATE_RESERVE_PUB_SUBJECT,
- NULL);
- }
- /* Re-acquiring the lock and continuing to operate on 'wo'
- is currently (!) acceptable because we NEVER free 'wo'
- until shutdown. We may want to revise this if keeping
- all withdraw operations in RAM becomes an issue... */
- GNUNET_assert (0 ==
- pthread_mutex_lock (&h->big_lock));
- wo->confirmation_done = true;
- TALER_FAKEBANK_notify_withdrawal_ (h,
- wo);
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_json (connection,
- json_object (),
- MHD_HTTP_OK);
-}
diff --git a/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
deleted file mode 100644
index 56cd2deda..000000000
--- a/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of TALER
- (C) 2016-2023 Taler Systems SA
-
- TALER is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with TALER; see the file COPYING. If not,
- see <http://www.gnu.org/licenses/>
-*/
-/**
- * @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_WITHDRAWALS_CONFIRM_H
-#define FAKEBANK_BANK_POST_WITHDRAWALS_CONFIRM_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"
-
-
-/**
- * Handle POST /accounts/{account_name}/withdrawals/{withdrawal_id}/confirm request.
- *
- * @param h our fakebank handle
- * @param connection the connection
- * @param withdrawal_id the withdrawal operation identifier
- * @return MHD result code
- */
-MHD_RESULT
-TALER_FAKEBANK_bank_withdrawals_confirm_ (
- struct TALER_FAKEBANK_Handle *h,
- struct MHD_Connection *connection,
- const char *withdrawal_id);
-
-#endif