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:
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,
};
}