diff options
-rw-r--r-- | src/bank-lib/Makefile.am | 6 | ||||
-rw-r--r-- | src/bank-lib/fakebank_bank.c | 140 | ||||
-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 |