summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMS <ms@taler.net>2020-06-02 11:37:44 +0200
committerMS <ms@taler.net>2020-06-02 11:39:24 +0200
commite8ad95a7d7974780850ffe20829ab60e5a67399c (patch)
tree74c020ef30c80a59efefb8227f11636602bb3d74
parentc7f37ecfb619cc1426d9b76c7285df4bbc499b8f (diff)
downloadlibeufin-e8ad95a7d7974780850ffe20829ab60e5a67399c.tar.gz
libeufin-e8ad95a7d7974780850ffe20829ab60e5a67399c.tar.bz2
libeufin-e8ad95a7d7974780850ffe20829ab60e5a67399c.zip
Payto
iban/bic/name are all mandatory now.
-rw-r--r--nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt8
-rw-r--r--nexus/src/test/kotlin/taler.kt35
2 files changed, 4 insertions, 39 deletions
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
index 9d1c5f81..349acbbe 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
@@ -108,11 +108,11 @@ fun parsePayto(paytoUri: String): Payto {
/**
- * payto://iban/BIC?/IBAN?name=<name>
+ * payto://iban/BIC/IBAN?name=<name>
* payto://x-taler-bank/<bank hostname>/<plain account number>
*/
- val ibanMatch = Regex("payto://iban/([A-Z0-9]+/)?([A-Z0-9]+)\\?name=(\\w+)").find(paytoUri)
+ val ibanMatch = Regex("payto://iban/([A-Z0-9]+)/([A-Z0-9]+)\\?name=(\\w+)").find(paytoUri)
if (ibanMatch != null) {
val (bic, iban, name) = ibanMatch.destructured
return Payto(name, iban, bic.replace("/", ""))
@@ -141,10 +141,10 @@ fun <T : Entity<Long>> SizedIterable<T>.orderTaler(delta: Int): List<T> {
* 'iban'.
*/
fun buildPaytoUri(name: String, iban: String, bic: String): String {
- return "payto://x-taler-bank/localhost/$iban"
+ return "payto://iban/$bic/$iban?name=$name"
}
fun buildPaytoUri(iban: String, bic: String): String {
- return "payto://x-taler-bank/localhost/$iban"
+ return "payto://iban/$bic/$iban"
}
/** Builds the comparison operator for history entries based on the sign of 'delta' */
diff --git a/nexus/src/test/kotlin/taler.kt b/nexus/src/test/kotlin/taler.kt
deleted file mode 100644
index 8cb59ad7..00000000
--- a/nexus/src/test/kotlin/taler.kt
+++ /dev/null
@@ -1,35 +0,0 @@
-package tech.libeufin.nexus
-
-import io.ktor.routing.RootRouteSelector
-import io.ktor.routing.Route
-import io.ktor.util.InternalAPI
-import org.junit.Test
-import tech.libeufin.util.Amount
-import java.math.BigDecimal
-import tech.libeufin.util.parseAmount
-
-class TalerTest {
-
-// @InternalAPI
-// val taler = Taler(Route(null, RootRouteSelector("unused")))
-//
-// @InternalAPI
-// @Test
-// fun paytoParserTest() {
-// val payto = taler.parsePayto("payto://iban/ABC/XYZ?name=foo")
-// assert(payto.bic == "ABC" && payto.iban == "XYZ" && payto.name == "foo")
-// val paytoNoBic = taler.parsePayto("payto://iban/XYZ?name=foo")
-// assert(paytoNoBic.bic == "" && paytoNoBic.iban == "XYZ" && paytoNoBic.name == "foo")
-// }
-//
-// @InternalAPI
-// @Test
-// fun amountParserTest() {
-// val amount = parseAmount("EUR:1")
-// assert(amount.currency == "EUR" && amount.amount.equals(BigDecimal(1)))
-// val amount299 = parseAmount("EUR:2.99")
-// assert(amount299.amount.compareTo(Amount("2.99")) == 0)
-// val amount25 = parseAmount("EUR:2.5")
-// assert(amount25.amount.compareTo(Amount("2.5")) == 0)
-// }
-} \ No newline at end of file