diff options
author | Florian Dold <florian@dold.me> | 2024-05-23 23:14:07 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-05-23 23:14:12 +0200 |
commit | 5804da72ed30b3cea5212bb6e09ebf508f84b311 (patch) | |
tree | 12e1e56267b33ff658ce7589e938d35c2fe47ef9 /src/bank-lib | |
parent | 71c87d483230167f20426d286dae1d3f2ed24b99 (diff) |
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.am | 2 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank.c | 51 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank_post_withdrawals_abort.c | 74 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank_post_withdrawals_abort.h | 48 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank_post_withdrawals_confirm.c | 116 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank_post_withdrawals_confirm.h | 48 |
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 |