summaryrefslogtreecommitdiff
path: root/src/lib/testing_api_cmd_bank_admin_add_incoming.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-15 14:57:58 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-15 14:58:10 +0100
commitb37fff0d5b08926169633ce8822de7ac616ae169 (patch)
tree88be0f24a260f2e7037cabd60227584a5c7f6749 /src/lib/testing_api_cmd_bank_admin_add_incoming.c
parentd822035216d9ad33665a2f8274432918ca7d42be (diff)
downloadexchange-b37fff0d5b08926169633ce8822de7ac616ae169.tar.gz
exchange-b37fff0d5b08926169633ce8822de7ac616ae169.tar.bz2
exchange-b37fff0d5b08926169633ce8822de7ac616ae169.zip
ftbfs
Diffstat (limited to 'src/lib/testing_api_cmd_bank_admin_add_incoming.c')
-rw-r--r--src/lib/testing_api_cmd_bank_admin_add_incoming.c168
1 files changed, 87 insertions, 81 deletions
diff --git a/src/lib/testing_api_cmd_bank_admin_add_incoming.c b/src/lib/testing_api_cmd_bank_admin_add_incoming.c
index e490fce25..04e7d5637 100644
--- a/src/lib/testing_api_cmd_bank_admin_add_incoming.c
+++ b/src/lib/testing_api_cmd_bank_admin_add_incoming.c
@@ -17,7 +17,7 @@
<http://www.gnu.org/licenses/>
*/
/**
- * @file exchange-lib/testing_api_cmd_admin_add_incoming.c
+ * @file lib/testing_api_cmd_admin_add_incoming.c
* @brief implementation of a bank /admin/add-incoming command
* @author Christian Grothoff
* @author Marcello Stanisci
@@ -59,6 +59,11 @@ struct AdminAddIncomingState
const char *payto_debit_account;
/**
+ * Money sender account URL.
+ */
+ char *payto_credit_account;
+
+ /**
* Username to use for authentication.
*/
struct TALER_BANK_AuthenticationData auth;
@@ -376,6 +381,7 @@ admin_add_incoming_cleanup (void *cls,
GNUNET_SCHEDULER_cancel (fts->retry_task);
fts->retry_task = NULL;
}
+ GNUNET_free (fts->payto_credit_account);
GNUNET_free (fts);
}
@@ -402,7 +408,8 @@ admin_add_incoming_traits (void *cls,
TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
fts->payto_debit_account),
TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
- fts->exchange_credit_url),
+ fts->payto_credit_account),
+ TALER_TESTING_make_trait_url (0, fts->exchange_credit_url),
TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
TALER_TESTING_make_trait_reserve_priv (0,
@@ -420,52 +427,88 @@ admin_add_incoming_traits (void *cls,
/**
- * Create admin/add-incoming command.
+ * Create internal state for "/admin/add-incoming" CMD.
*
- * @param label command label.
- * @param amount amount to transfer.
- * @param exchange_base_url base URL of the account that receives this
- * wire transer (which account receives money).
- * @param payto_debit_account which account sends money.
+ * @param amount the amount to transfer.
+ * @param account_bank_url base URL of the exchange account receiving the money
+ * @param payto_debit_account which account sends money
* @param auth authentication data
- * @return the command.
+ * @return the internal state
*/
-struct TALER_TESTING_Command
-TALER_TESTING_cmd_admin_add_incoming
- (const char *label,
- const char *amount,
- const char *exchange_base_url,
- const struct TALER_BANK_AuthenticationData *auth,
- const char *payto_debit_account)
+static struct AdminAddIncomingState *
+make_fts (const char *amount,
+ const char *exchange_base_url,
+ const struct TALER_BANK_AuthenticationData *auth,
+ const char *payto_debit_account)
{
struct AdminAddIncomingState *fts;
fts = GNUNET_new (struct AdminAddIncomingState);
fts->exchange_credit_url = exchange_base_url;
fts->payto_debit_account = payto_debit_account;
+ fts->payto_credit_account
+ = TALER_payto_xtalerbank_make2 (exchange_base_url);
fts->auth = *auth;
if (GNUNET_OK !=
TALER_string_to_amount (amount,
&fts->amount))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to parse amount `%s' at %s\n",
- amount,
- label);
+ "Failed to parse amount `%s'\n",
+ amount);
GNUNET_assert (0);
}
+ return fts;
+}
- {
- struct TALER_TESTING_Command cmd = {
- .cls = fts,
- .label = label,
- .run = &admin_add_incoming_run,
- .cleanup = &admin_add_incoming_cleanup,
- .traits = &admin_add_incoming_traits
- };
-
- return cmd;
- }
+
+/**
+ * Helper function to create admin/add-incoming command.
+ *
+ * @param label command label.
+ * @param fts internal state to use
+ * @return the command.
+ */
+static struct TALER_TESTING_Command
+make_command (const char *label,
+ struct AdminAddIncomingState *fts)
+{
+ struct TALER_TESTING_Command cmd = {
+ .cls = fts,
+ .label = label,
+ .run = &admin_add_incoming_run,
+ .cleanup = &admin_add_incoming_cleanup,
+ .traits = &admin_add_incoming_traits
+ };
+
+ return cmd;
+}
+
+
+/**
+ * Create admin/add-incoming command.
+ *
+ * @param label command label.
+ * @param amount amount to transfer.
+ * @param exchange_base_url base URL of the account that receives this
+ * wire transer (which account receives money).
+ * @param payto_debit_account which account sends money.
+ * @param auth authentication data
+ * @return the command.
+ */
+struct TALER_TESTING_Command
+TALER_TESTING_cmd_admin_add_incoming
+ (const char *label,
+ const char *amount,
+ const char *exchange_base_url,
+ const struct TALER_BANK_AuthenticationData *auth,
+ const char *payto_debit_account)
+{
+ return make_command (label,
+ make_fts (amount,
+ exchange_base_url,
+ auth,
+ payto_debit_account));
}
@@ -495,32 +538,13 @@ TALER_TESTING_cmd_admin_add_incoming_with_ref
{
struct AdminAddIncomingState *fts;
- fts = GNUNET_new (struct AdminAddIncomingState);
- fts->exchange_credit_url = account_base_url;
- fts->payto_debit_account = payto_debit_account;
- fts->auth = *auth;
+ fts = make_fts (amount,
+ account_base_url,
+ auth,
+ payto_debit_account);
fts->reserve_reference = ref;
- if (GNUNET_OK !=
- TALER_string_to_amount (amount,
- &fts->amount))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to parse amount `%s' at %s\n",
- amount,
- label);
- GNUNET_assert (0);
- }
- {
- struct TALER_TESTING_Command cmd = {
- .cls = fts,
- .label = label,
- .run = &admin_add_incoming_run,
- .cleanup = &admin_add_incoming_cleanup,
- .traits = &admin_add_incoming_traits
- };
-
- return cmd;
- }
+ return make_command (label,
+ fts);
}
@@ -557,33 +581,15 @@ TALER_TESTING_cmd_admin_add_incoming_with_instance
{
struct AdminAddIncomingState *fts;
- fts = GNUNET_new (struct AdminAddIncomingState);
- fts->exchange_credit_url = account_base_url;
- fts->payto_debit_account = payto_debit_account;
- fts->auth = *auth;
+ fts = make_fts (amount,
+ account_base_url,
+ auth,
+ payto_debit_account);
fts->instance = instance;
fts->config_filename = config_filename;
- if (GNUNET_OK !=
- TALER_string_to_amount (amount,
- &fts->amount))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to parse amount `%s' at %s\n",
- amount,
- label);
- GNUNET_assert (0);
- }
- {
- struct TALER_TESTING_Command cmd = {
- .cls = fts,
- .label = label,
- .run = &admin_add_incoming_run,
- .cleanup = &admin_add_incoming_cleanup,
- .traits = &admin_add_incoming_traits
- };
-
- return cmd;
- }
+
+ return make_command (label,
+ fts);
}
@@ -607,4 +613,4 @@ TALER_TESTING_cmd_admin_add_incoming_retry (struct TALER_TESTING_Command cmd)
}
-/* end of testing_api_cmd_admin_add_incoming.c */
+/* end of testing_api_cmd_bank_admin_add_incoming.c */