summaryrefslogtreecommitdiff
path: root/src/wire/wire_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wire/wire_helper.c')
-rw-r--r--src/wire/wire_helper.c65
1 files changed, 57 insertions, 8 deletions
diff --git a/src/wire/wire_helper.c b/src/wire/wire_helper.c
index 34d40e11..13e9bd79 100644
--- a/src/wire/wire_helper.c
+++ b/src/wire/wire_helper.c
@@ -2,16 +2,19 @@
This file is part of TALER
(C) 2018 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 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.
+ 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/>
+ 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/>
*/
/**
@@ -30,6 +33,23 @@
/**
+ * Maps wire methods to plugin names.
+ */
+struct ConversionTable
+{
+
+ /**
+ * Wire method (e.g. 'sepa', 'x-taler-bank', ..)
+ */
+ const char *method;
+
+ /**
+ * Plugin name, e.g. 'ebics', 'taler_bank', ..
+ */
+ const char *plugin_name;
+};
+
+/**
* Obtain the payment method from a @a payto_url
*
* @param payto_url the URL to parse
@@ -54,4 +74,33 @@ TALER_WIRE_payto_get_method (const char *payto_url)
end - start);
}
+
+/**
+ * Get the plugin name from the payment method.
+ *
+ * @param method the method implemented by the plugin (for
+ * simplicity, we assume 1 method is implemented by 1 plugin).
+ * @return the plugin name, NULL if not found.
+ */
+const char *
+TALER_WIRE_get_plugin_from_method (const char *method)
+{
+ static const struct ConversionTable ct[] = {
+ {"x-taler-bank", "taler_bank"},
+ {"sepa", "ebics"},
+ {NULL, NULL}
+ };
+
+ for (unsigned int i=0;
+ NULL != ct[i].method;
+ i++)
+ {
+ if (0 == strcmp (method,
+ ct[i].method))
+ return ct[i].plugin_name;
+ }
+
+ return NULL;
+}
+
/* end of wire_helper.c */