taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit a4f1127e0adc4fca173a4b66419f87c0d387fb8a
parent ae111663f412ad7bee9029110e3ab1594ec14576
Author: Florian Dold <florian.dold@gmail.com>
Date:   Mon, 27 Jul 2020 23:27:32 +0530

allow http for taler withdraw URIs

Diffstat:
Msrc/util/taleruri-test.ts | 11+++++++++++
Msrc/util/taleruri.ts | 10++++------
2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/util/taleruri-test.ts b/src/util/taleruri-test.ts @@ -107,6 +107,17 @@ test("taler withdraw uri parsing", (t) => { t.is(r1.bankIntegrationApiBaseUrl, "https://bank.example.com/"); }); +test("taler withdraw uri parsing (http)", (t) => { + const url1 = "taler+http://withdraw/bank.example.com/12345"; + const r1 = parseWithdrawUri(url1); + if (!r1) { + t.fail(); + return; + } + t.is(r1.withdrawalOperationId, "12345"); + t.is(r1.bankIntegrationApiBaseUrl, "http://bank.example.com/"); +}); + test("taler refund uri parsing", (t) => { const url1 = "taler://refund/merchant.example.com/1234"; const r1 = parseRefundUri(url1); diff --git a/src/util/taleruri.ts b/src/util/taleruri.ts @@ -40,13 +40,11 @@ export interface TipUriResult { * Return undefined if not passed a valid URI. */ export function parseWithdrawUri(s: string): WithdrawUriResult | undefined { - const pfx = "taler://withdraw/"; - if (!s.toLowerCase().startsWith(pfx)) { + const pi = parseProtoInfo(s, "withdraw"); + if (!pi) { return undefined; } - - const rest = s.substring(pfx.length); - const parts = rest.split("/"); + const parts = pi.rest.split("/"); if (parts.length < 2) { return undefined; @@ -58,7 +56,7 @@ export function parseWithdrawUri(s: string): WithdrawUriResult | undefined { const p = [host, ...pathSegments].join("/"); return { - bankIntegrationApiBaseUrl: `https://${p}/`, + bankIntegrationApiBaseUrl: `${pi.innerProto}://${p}/`, withdrawalOperationId: withdrawId, }; }