aboutsummaryrefslogtreecommitdiff
path: root/src/headless
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-03-09 14:17:06 +0530
committerFlorian Dold <florian.dold@gmail.com>2020-03-09 14:17:06 +0530
commit4999920373bf288fa3049802fa5db16078e5cba9 (patch)
tree54d2cf501b7f62e973a524df06d038edfe5a46b8 /src/headless
parentc5c308661e1080b30c20b1e50d1072b269f4a482 (diff)
downloadwallet-core-4999920373bf288fa3049802fa5db16078e5cba9.tar.xz
use newer bank API
Diffstat (limited to 'src/headless')
-rw-r--r--src/headless/bank.ts31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/headless/bank.ts b/src/headless/bank.ts
index b82951f43..81b5293bd 100644
--- a/src/headless/bank.ts
+++ b/src/headless/bank.ts
@@ -24,13 +24,16 @@
* Imports.
*/
import Axios from "axios";
-import querystring = require("querystring");
export interface BankUser {
username: string;
password: string;
}
+/**
+ * Generate a random alphanumeric ID. Does *not* use cryptographically
+ * secure randomness.
+ */
function makeId(length: number): string {
let result = "";
const characters =
@@ -41,18 +44,25 @@ function makeId(length: number): string {
return result;
}
+/**
+ * Helper function to generate the "Authorization" HTTP header.
+ */
function makeAuth(username: string, password: string): string {
const auth = `${username}:${password}`;
const authEncoded: string = Buffer.from(auth).toString("base64");
return `Basic ${authEncoded}`;
}
-
-
+/**
+ * Client for the Taler bank access API.
+ */
export class Bank {
constructor(private bankBaseUrl: string) {}
- async generateWithdrawUri(bankUser: BankUser, amount: string): Promise<string> {
+ async generateWithdrawUri(
+ bankUser: BankUser,
+ amount: string,
+ ): Promise<string> {
const body = {
amount,
};
@@ -65,7 +75,7 @@ export class Bank {
data: body,
responseType: "json",
headers: {
- "Authorization": makeAuth(bankUser.username, bankUser.password),
+ Authorization: makeAuth(bankUser.username, bankUser.password),
},
});
@@ -86,14 +96,13 @@ export class Bank {
reservePub: string,
exchangePaytoUri: string,
) {
- const reqUrl = new URL("api/withdraw-headless", this.bankBaseUrl).href;
+ const reqUrl = new URL("testing/withdraw", this.bankBaseUrl).href;
const body = {
- auth: { type: "basic" },
username: bankUser,
amount,
reserve_pub: reservePub,
- exchange_wire_detail: exchangePaytoUri,
+ exchange_payto_uri: exchangePaytoUri,
};
const resp = await Axios({
@@ -102,7 +111,7 @@ export class Bank {
data: body,
responseType: "json",
headers: {
- "Authorization": makeAuth(bankUser.username, bankUser.password),
+ Authorization: makeAuth(bankUser.username, bankUser.password),
},
});
@@ -112,7 +121,7 @@ export class Bank {
}
async registerRandomUser(): Promise<BankUser> {
- const reqUrl = new URL("api/register", this.bankBaseUrl).href;
+ const reqUrl = new URL("testing/register", this.bankBaseUrl).href;
const randId = makeId(8);
const bankUser: BankUser = {
username: `testuser-${randId}`,
@@ -122,7 +131,7 @@ export class Bank {
const resp = await Axios({
method: "post",
url: reqUrl,
- data: querystring.stringify(bankUser as any),
+ data: bankUser,
responseType: "json",
});