-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
101 lines (84 loc) · 2.2 KB
/
index.js
File metadata and controls
101 lines (84 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
const { request } = require("https");
const soofa = {};
soofa.init = (till, clientSecret) => {
soofa.clientSecret = clientSecret;
soofa.tillNumber = till;
};
soofa.transaction = null;
soofa.balance = null;
soofa.find = tid => {
const options = {
host: "api.soofapay.com",
path: `/v1/transactions/${tid}/`,
method: "GET",
headers: {
"X-TILL": soofa.tillNumber,
Authorization: soofa.clientSecret
}
};
return new Promise((resolve, reject) => {
const rqst = request(options, res => {
if (res.statusCode === 403) {
resolve({
Error:
"A transaction is not available yet. Please ensure you call find method and verify that one exists before proceeding."
});
} else if (res.statusCode === 404) {
resolve({ Error: `Transaction with id ${tid} does not exist.` });
}
let result = "";
res.on("data", function(chunk) {
result += chunk;
});
res.on("end", function() {
soofa.transaction = result;
resolve(JSON.parse(result));
});
res.on("error", function(error) {
reject(error);
});
});
rqst.end();
});
};
soofa.getBalance = () => {
const options = {
host: "api.soofapay.com",
path: `/v1/balance/`,
method: "GET",
headers: {
"X-TILL": soofa.tillNumber,
Authorization: soofa.clientSecret
}
};
return new Promise((resolve, reject) => {
const rqst = request(options, res => {
if (res.statusCode === 403) {
resolve({ Error: "Your are not allowed to perform this action." });
}
let result = "";
res.on("data", function(chunk) {
result += chunk;
});
res.on("end", function() {
soofa.balance = result;
resolve(JSON.parse(result));
});
res.on("error", function(error) {
reject(error);
});
});
rqst.end();
});
};
soofa.getTransaction = () => {
if (soofa.transaction === null) {
return {
Error:
"A transaction is not available yet. Please ensure you call find method and verify that one exists before proceeding."
};
} else {
return JSON.parse(soofa.transaction);
}
};
module.exports = soofa;