diff options
author | Florian Dold <florian.dold@gmail.com> | 2020-07-27 23:27:32 +0530 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2020-07-27 23:27:32 +0530 |
commit | a4f1127e0adc4fca173a4b66419f87c0d387fb8a (patch) | |
tree | b5d000169b0c0646eee4d35b839ef90271a30918 /src/util | |
parent | ae111663f412ad7bee9029110e3ab1594ec14576 (diff) |
allow http for taler withdraw URIs
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/taleruri-test.ts | 11 | ||||
-rw-r--r-- | src/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 index 40a30bf7f..314a981fd 100644 --- 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 index 7e64dd4ca..fd2cca6ce 100644 --- 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, }; } |