allow http for taler withdraw URIs

This commit is contained in:
Florian Dold 2020-07-27 23:27:32 +05:30
parent ae111663f4
commit a4f1127e0a
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 15 additions and 6 deletions

View File

@ -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);

View File

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