apipay 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +6 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/metrics/summary.js +3 -3
- package/dist/commands/metrics/summary.js.map +1 -1
- package/dist/commands/pay/create.js +2 -2
- package/dist/commands/pay/create.js.map +1 -1
- package/dist/commands/pay/list.d.ts.map +1 -1
- package/dist/commands/pay/list.js +2 -2
- package/dist/commands/pay/list.js.map +1 -1
- package/dist/commands/pay/remove.d.ts +1 -1
- package/dist/commands/pay/remove.js +13 -13
- package/dist/commands/pay/remove.js.map +1 -1
- package/dist/commands/setup.d.ts +5 -7
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +120 -123
- package/dist/commands/setup.js.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +4 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/formatters.d.ts +2 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +7 -0
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/validators.d.ts +2 -1
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +6 -2
- package/dist/lib/validators.js.map +1 -1
- package/package.json +1 -1
- package/oclif.manifest.json +0 -1156
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAsBnD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC7C,OAAgB,WAAW,SAA8B;IAEzD,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;;MAcnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA+BZ,kBAAkB;YA+GlB,iBAAiB;IA6C/B,OAAO,CAAC,KAAK;CAGb"}
|
package/dist/commands/login.js
CHANGED
|
@@ -4,7 +4,7 @@ import open from "open";
|
|
|
4
4
|
import { BaseCommand } from "../lib/base-command.js";
|
|
5
5
|
import { clearApiKey, clearAuth, getAuth, getDashboardUrl, isLoggedIn, setAuth, } from "../lib/config.js";
|
|
6
6
|
import { MAGIC_LINK_POLL_INTERVAL_MS, MAGIC_LINK_TIMEOUT_MS, } from "../lib/constants.js";
|
|
7
|
-
import { info, kvLine, success, warn } from "../lib/formatters.js";
|
|
7
|
+
import { info, kvLine, maskLongString, success, warn, } from "../lib/formatters.js";
|
|
8
8
|
import { promptConfirm, promptEmail } from "../lib/prompts.js";
|
|
9
9
|
export default class Login extends BaseCommand {
|
|
10
10
|
static description = "Authenticate with ApiPay";
|
|
@@ -145,7 +145,10 @@ export default class Login extends BaseCommand {
|
|
|
145
145
|
async loginWithPassword(email, password) {
|
|
146
146
|
this.spinner.start("Logging in...");
|
|
147
147
|
try {
|
|
148
|
-
const data = await this.api.post("/auth/login", {
|
|
148
|
+
const data = await this.api.post("/auth/login", {
|
|
149
|
+
emailOrUsername: email,
|
|
150
|
+
password,
|
|
151
|
+
});
|
|
149
152
|
const result = data?.data ?? data;
|
|
150
153
|
const user = result?.user;
|
|
151
154
|
const tokens = result?.tokens;
|
|
@@ -163,13 +166,11 @@ export default class Login extends BaseCommand {
|
|
|
163
166
|
this.spinner.succeed("Authenticated!");
|
|
164
167
|
console.log("");
|
|
165
168
|
success(`Logged in as ${chalk.bold(user?.email ?? email)}`);
|
|
166
|
-
kvLine("User ID", user?.id ?? "");
|
|
167
|
-
kvLine("Role", user?.role ?? "USER");
|
|
169
|
+
kvLine("User ID", maskLongString(user?.id) ?? "");
|
|
168
170
|
if (this.jsonOutput) {
|
|
169
171
|
this.outputJson({
|
|
170
172
|
email: user?.email,
|
|
171
173
|
userId: user?.id,
|
|
172
|
-
role: user?.role,
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACN,WAAW,EACX,SAAS,EACT,OAAO,EACP,eAAe,EACf,UAAU,EACV,OAAO,GACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
-
import { createTable } from "../../lib/formatters.js";
|
|
3
|
+
import { createTable, formatCurrency } from "../../lib/formatters.js";
|
|
4
4
|
export default class MetricsSummary extends ApiKeyCommand {
|
|
5
5
|
static description = "View transaction summary grouped by bank";
|
|
6
6
|
static examples = ["<%= config.bin %> metrics:summary"];
|
|
@@ -18,8 +18,8 @@ export default class MetricsSummary extends ApiKeyCommand {
|
|
|
18
18
|
console.log("");
|
|
19
19
|
const table = createTable(["Bank", "Total In", "Total Out", "Count In", "Count Out"], items.map((s) => [
|
|
20
20
|
s.bankName ?? s.bankShortName ?? "—",
|
|
21
|
-
chalk.green(s.totalIn
|
|
22
|
-
chalk.red(s.totalOut
|
|
21
|
+
chalk.green(formatCurrency(s.totalIn ?? 0)),
|
|
22
|
+
chalk.red(formatCurrency(s.totalOut ?? 0)),
|
|
23
23
|
s.countIn?.toString() ?? "0",
|
|
24
24
|
s.countOut?.toString() ?? "0",
|
|
25
25
|
]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/commands/metrics/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/commands/metrics/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAC;IAEzE,MAAM,CAAU,QAAQ,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjE,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEtD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBACvC,OAAO;YACR,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAC1D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACrB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,IAAI,GAAG;gBACpC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBAC3C,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG;gBAC5B,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;aAC7B,CAAC,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
-
import { kvLine, success } from "../../lib/formatters.js";
|
|
3
|
+
import { formatCurrency, kvLine, success } from "../../lib/formatters.js";
|
|
4
4
|
import { promptAmount, promptBankFromList, promptNote, } from "../../lib/prompts.js";
|
|
5
5
|
export default class PayCreate extends ApiKeyCommand {
|
|
6
6
|
static description = "Generate a new payment link (payment request)";
|
|
@@ -49,7 +49,7 @@ export default class PayCreate extends ApiKeyCommand {
|
|
|
49
49
|
this.spinner.succeed("Payment link generated successfully!");
|
|
50
50
|
console.log("");
|
|
51
51
|
kvLine("ID", pr.publicId ?? "—");
|
|
52
|
-
kvLine("Amount", pr.amount ?
|
|
52
|
+
kvLine("Amount", pr.amount ? formatCurrency(pr.amount) : amount ? formatCurrency(amount) : "Flexible");
|
|
53
53
|
kvLine("Content", pr.content ?? pr.title ?? note ?? "—");
|
|
54
54
|
kvLine("Payment URL", chalk.cyan.underline(pr.payUrl ?? "—"));
|
|
55
55
|
// if (pr.qrUrl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pay/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pay/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/pay/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/pay/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAQxD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,aAAa;IACjD,OAAgB,WAAW,SAA+C;IAE1E,OAAgB,QAAQ,WAAkC;IAEpD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
-
import { createTable, maskLongString, statusBadge, } from "../../lib/formatters.js";
|
|
3
|
+
import { createTable, formatCurrency, maskLongString, statusBadge, } from "../../lib/formatters.js";
|
|
4
4
|
export default class PayList extends ApiKeyCommand {
|
|
5
5
|
static description = "List all payment links (payment requests)";
|
|
6
6
|
static examples = ["<%= config.bin %> pay:list"];
|
|
@@ -22,7 +22,7 @@ export default class PayList extends ApiKeyCommand {
|
|
|
22
22
|
console.log("");
|
|
23
23
|
const table = createTable(["UUID", "Amount", "Content", "Status", "Bank", "URL"], prs.map((pr) => [
|
|
24
24
|
maskLongString(pr.publicId) ?? "—",
|
|
25
|
-
pr.amount ?
|
|
25
|
+
pr.amount ? formatCurrency(pr.amount) : "-",
|
|
26
26
|
pr.content ?? pr.title ?? "—",
|
|
27
27
|
statusBadge(pr.status ?? "PENDING"),
|
|
28
28
|
pr.bankCode ?? "—",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/pay/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACN,WAAW,EACX,cAAc,EACd,WAAW,GACX,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,aAAa;IACjD,MAAM,CAAU,WAAW,GAAG,2CAA2C,CAAC;IAE1E,MAAM,CAAU,QAAQ,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1D,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;YACxE,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;YAE1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,EAAE,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,CACT,kEAAkE,CAClE,CACD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EACtD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC;gBACpB,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG;gBAClC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/pay/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACN,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,GACX,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,aAAa;IACjD,MAAM,CAAU,WAAW,GAAG,2CAA2C,CAAC;IAE1E,MAAM,CAAU,QAAQ,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1D,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;YACxE,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;YAE1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,EAAE,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,CACT,kEAAkE,CAClE,CACD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EACtD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC;gBACpB,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG;gBAClC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC3C,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG;gBAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;gBACnC,EAAE,CAAC,QAAQ,IAAI,GAAG;gBAClB,EAAE,CAAC,MAAM,IAAI,GAAG;aAChB,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -3,7 +3,7 @@ export default class PayRemove extends ApiKeyCommand {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
6
|
-
|
|
6
|
+
cuid: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
7
7
|
};
|
|
8
8
|
run(): Promise<void>;
|
|
9
9
|
}
|
|
@@ -2,27 +2,27 @@ import { select } from "@inquirer/prompts";
|
|
|
2
2
|
import { Args } from "@oclif/core";
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
5
|
-
import { maskLongString, success } from "../../lib/formatters.js";
|
|
5
|
+
import { formatCurrency, maskLongString, success } from "../../lib/formatters.js";
|
|
6
6
|
export default class PayRemove extends ApiKeyCommand {
|
|
7
7
|
static description = "Remove a payment link (payment request)";
|
|
8
8
|
static examples = [
|
|
9
9
|
"<%= config.bin %> pay:remove",
|
|
10
|
-
"<%= config.bin %> pay:remove
|
|
10
|
+
"<%= config.bin %> pay:remove ckabcdef1234567890",
|
|
11
11
|
];
|
|
12
12
|
static args = {
|
|
13
|
-
|
|
14
|
-
description: "
|
|
13
|
+
cuid: Args.string({
|
|
14
|
+
description: "CUID of the payment link to remove",
|
|
15
15
|
required: false,
|
|
16
16
|
}),
|
|
17
17
|
};
|
|
18
18
|
async run() {
|
|
19
19
|
const { args } = await this.parse(PayRemove);
|
|
20
|
-
let
|
|
20
|
+
let cuid = args.cuid;
|
|
21
21
|
console.log("");
|
|
22
22
|
console.log(chalk.bold(" Remove Payment Link"));
|
|
23
23
|
console.log(chalk.gray(" ───────────────────"));
|
|
24
24
|
console.log("");
|
|
25
|
-
if (!
|
|
25
|
+
if (!cuid) {
|
|
26
26
|
this.spinner.start("Fetching payment links...");
|
|
27
27
|
try {
|
|
28
28
|
const result = await this.api.get("/client/payment-requests", "apikey");
|
|
@@ -36,11 +36,11 @@ export default class PayRemove extends ApiKeyCommand {
|
|
|
36
36
|
console.log(chalk.gray("No payment links found. Nothing to remove."));
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
cuid = await select({
|
|
40
40
|
message: "Select a payment link to remove:",
|
|
41
41
|
choices: prs.map((pr) => ({
|
|
42
42
|
value: maskLongString(pr.publicId),
|
|
43
|
-
name: `${maskLongString(pr.publicId)} — ${pr.amount ? pr.amount
|
|
43
|
+
name: `${maskLongString(pr.publicId)} — ${pr.amount ? formatCurrency(pr.amount) : "Flexible"} — ${pr.content ?? pr.title ?? "No Note"}`,
|
|
44
44
|
})),
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -49,18 +49,18 @@ export default class PayRemove extends ApiKeyCommand {
|
|
|
49
49
|
this.handleError(error);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
if (!
|
|
52
|
+
if (!cuid)
|
|
53
53
|
return;
|
|
54
|
-
this.spinner.start(`Removing payment link ${
|
|
54
|
+
this.spinner.start(`Removing payment link ${cuid.substring(0, 8)}...`);
|
|
55
55
|
try {
|
|
56
|
-
await this.api.delete(`/client/payment-requests/${
|
|
56
|
+
await this.api.delete(`/client/payment-requests/${cuid}`, "apikey");
|
|
57
57
|
this.spinner.succeed("Payment link removed successfully!");
|
|
58
58
|
if (this.jsonOutput) {
|
|
59
|
-
this.outputJson({ success: true, removedId:
|
|
59
|
+
this.outputJson({ success: true, removedId: cuid });
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
62
|
console.log("");
|
|
63
|
-
success(`Removed payment link ${chalk.cyan(
|
|
63
|
+
success(`Removed payment link ${chalk.cyan(cuid)}`);
|
|
64
64
|
console.log("");
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/pay/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,cAAc,EAAE,OAAO,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/pay/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAEhF,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IACnD,MAAM,CAAU,WAAW,GAAG,yCAAyC,CAAC;IAExE,MAAM,CAAU,QAAQ,GAAG;QAC1B,8BAA8B;QAC9B,iDAAiD;KACjD,CAAC;IAEF,MAAM,CAAU,IAAI,GAAG;QACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,KAAK;SACf,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAErB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBACxE,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9B,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;gBAElC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;oBAAE,GAAG,GAAG,EAAE,CAAC;gBAElC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;oBACtE,OAAO;gBACR,CAAC;gBAED,IAAI,GAAG,MAAM,MAAM,CAAC;oBACnB,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;wBAC9B,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC;wBAClC,IAAI,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,SAAS,EAAE;qBACvI,CAAC,CAAC;iBACH,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvE,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YAE3D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { BaseCommand } from "../lib/base-command.js";
|
|
2
2
|
/**
|
|
3
3
|
* `apipay setup` — Guided setup wizard.
|
|
4
|
-
* Walks
|
|
5
|
-
* 1. Login (
|
|
6
|
-
* 2. Generate API key
|
|
7
|
-
* 3. Add bank account
|
|
8
|
-
* 4. Register webhook
|
|
9
|
-
*
|
|
10
|
-
* Resumes from the last incomplete step automatically.
|
|
4
|
+
* Walks users through the complete setup flow every time:
|
|
5
|
+
* 1. Login (skipped only if already authenticated)
|
|
6
|
+
* 2. Generate / confirm API key (always refetched from API)
|
|
7
|
+
* 3. Add bank account (always refetched from API)
|
|
8
|
+
* 4. Register webhook (always refetched from API)
|
|
11
9
|
*/
|
|
12
10
|
export default class Setup extends BaseCommand {
|
|
13
11
|
static description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAuBnD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC7C,OAAgB,WAAW,SAC0D;IAErF,OAAgB,QAAQ,WAA+B;IAEjD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAsKZ,iBAAiB;YAgBjB,kBAAkB;IAYhC,OAAO,CAAC,cAAc;CActB"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { BaseCommand } from "../lib/base-command.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getAuth, getApiKey, isLoggedIn, markStepComplete } from "../lib/config.js";
|
|
4
4
|
import { SETUP_STEPS } from "../lib/constants.js";
|
|
5
5
|
import { banner, createTable, info, kvLine, maskAccountNumber, maskLongString, statusBadge, stepLabel, success, } from "../lib/formatters.js";
|
|
6
6
|
import { promptConfirm } from "../lib/prompts.js";
|
|
@@ -12,13 +12,11 @@ import PayCreate from "./pay/create.js";
|
|
|
12
12
|
import WebhooksAdd from "./webhooks/add.js";
|
|
13
13
|
/**
|
|
14
14
|
* `apipay setup` — Guided setup wizard.
|
|
15
|
-
* Walks
|
|
16
|
-
* 1. Login (
|
|
17
|
-
* 2. Generate API key
|
|
18
|
-
* 3. Add bank account
|
|
19
|
-
* 4. Register webhook
|
|
20
|
-
*
|
|
21
|
-
* Resumes from the last incomplete step automatically.
|
|
15
|
+
* Walks users through the complete setup flow every time:
|
|
16
|
+
* 1. Login (skipped only if already authenticated)
|
|
17
|
+
* 2. Generate / confirm API key (always refetched from API)
|
|
18
|
+
* 3. Add bank account (always refetched from API)
|
|
19
|
+
* 4. Register webhook (always refetched from API)
|
|
22
20
|
*/
|
|
23
21
|
export default class Setup extends BaseCommand {
|
|
24
22
|
static description = "Set up ApiPay interactively — login, generate API key, add bank, register webhook";
|
|
@@ -26,133 +24,133 @@ export default class Setup extends BaseCommand {
|
|
|
26
24
|
async run() {
|
|
27
25
|
banner();
|
|
28
26
|
console.log(chalk.gray("Initializing ApiPay SDK..."));
|
|
29
|
-
|
|
30
|
-
const nextStep = getNextIncompleteStep();
|
|
31
|
-
if (!nextStep) {
|
|
32
|
-
await this.printFinalSummary();
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (completed.length > 0) {
|
|
36
|
-
info(`Resuming setup from step ${completed.length + 1}/${SETUP_STEPS.length}...`);
|
|
37
|
-
await this.printChecklist(completed);
|
|
38
|
-
console.log("");
|
|
39
|
-
}
|
|
27
|
+
console.log("");
|
|
40
28
|
const totalSteps = SETUP_STEPS.length;
|
|
41
|
-
// Step 1: Login
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
console.log(chalk.gray(" Sign in to your account or create a new one at https://my.apipay.vn/signup \n"));
|
|
45
|
-
await Login.run([]);
|
|
46
|
-
console.log("");
|
|
47
|
-
}
|
|
48
|
-
// Step 2: API Key
|
|
49
|
-
if (!completed.includes("api-key")) {
|
|
50
|
-
if (!isLoggedIn()) {
|
|
51
|
-
this.error("Login is required before proceeding. Run `apipay login` first.", { exit: 1 });
|
|
52
|
-
}
|
|
53
|
-
console.log(stepLabel(2, totalSteps, "Generate API Key"));
|
|
54
|
-
console.log(chalk.gray(" Create an API key to authenticate your integration.\n"));
|
|
55
|
-
await KeysCreate.run([]);
|
|
56
|
-
console.log("");
|
|
57
|
-
}
|
|
58
|
-
// Step 3: Add Bank
|
|
59
|
-
if (!completed.includes("bank")) {
|
|
60
|
-
if (!getApiKey()) {
|
|
61
|
-
this.error("API key is required. Run `apipay keys:create` first.", {
|
|
62
|
-
exit: 1,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
console.log(stepLabel(3, totalSteps, "Add Bank Account"));
|
|
66
|
-
console.log(chalk.gray(" Connect a bank account to start receiving payments.\n"));
|
|
67
|
-
// Check for existing bank accounts first
|
|
68
|
-
let existingBanks = [];
|
|
29
|
+
// Step 1: Login — skip only if token is valid (verified via /me)
|
|
30
|
+
let tokenValid = false;
|
|
31
|
+
if (isLoggedIn()) {
|
|
69
32
|
try {
|
|
70
|
-
this.spinner.start("
|
|
71
|
-
const data = await this.api.
|
|
72
|
-
|
|
73
|
-
? data
|
|
74
|
-
: (data?.message ?? data?.data ?? data ?? []);
|
|
75
|
-
if (!Array.isArray(existingBanks))
|
|
76
|
-
existingBanks = [];
|
|
33
|
+
this.spinner.start("Verifying session...");
|
|
34
|
+
const data = await this.api.post("/auth/me", undefined, "jwt");
|
|
35
|
+
const user = data?.data ?? data;
|
|
77
36
|
this.spinner.stop();
|
|
37
|
+
const name = user?.name ?? user?.email ?? getAuth()?.email ?? "there";
|
|
38
|
+
info(`✓ Welcome back, ${chalk.cyan(name)}!`);
|
|
39
|
+
console.log("");
|
|
40
|
+
tokenValid = true;
|
|
78
41
|
}
|
|
79
42
|
catch {
|
|
80
43
|
this.spinner.stop();
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
if (existingBanks.length > 0) {
|
|
84
|
-
info(`You already have ${existingBanks.length} bank account(s):`);
|
|
44
|
+
info("Session expired. Please log in again.");
|
|
85
45
|
console.log("");
|
|
86
|
-
for (const b of existingBanks) {
|
|
87
|
-
kvLine(`${b.bankShortName ?? b.bankName ?? "—"} ${maskAccountNumber(b.accountNumber ?? "")}`, statusBadge(b.status ?? "UNKNOWN"));
|
|
88
|
-
}
|
|
89
|
-
console.log("");
|
|
90
|
-
const addAnother = await promptConfirm("Would you like to add another bank account?", false);
|
|
91
|
-
if (addAnother) {
|
|
92
|
-
await BanksAdd.run([]);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
markStepComplete("bank");
|
|
96
|
-
success("Using existing bank account.");
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
await BanksAdd.run([]);
|
|
101
46
|
}
|
|
47
|
+
}
|
|
48
|
+
if (!tokenValid) {
|
|
49
|
+
console.log(stepLabel(1, totalSteps, "Authenticate with ApiPay"));
|
|
50
|
+
console.log(chalk.gray(" Sign in to your account or create a new one at https://my.apipay.vn/signup \n"));
|
|
51
|
+
await Login.run([]);
|
|
102
52
|
console.log("");
|
|
103
53
|
}
|
|
104
|
-
// Step
|
|
105
|
-
if (!
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
54
|
+
// Step 2: API Key — always refetch and allow create/keep
|
|
55
|
+
if (!isLoggedIn()) {
|
|
56
|
+
this.error("Login is required before proceeding. Run `apipay login` first.", { exit: 1 });
|
|
57
|
+
}
|
|
58
|
+
console.log(stepLabel(2, totalSteps, "Generate API Key"));
|
|
59
|
+
console.log(chalk.gray(" Create an API key to authenticate your integration.\n"));
|
|
60
|
+
await KeysCreate.run([]);
|
|
61
|
+
console.log("");
|
|
62
|
+
// Step 3: Add Bank — always refetch from API
|
|
63
|
+
if (!getApiKey()) {
|
|
64
|
+
this.error("API key is required. Run `apipay keys:create` first.", {
|
|
65
|
+
exit: 1,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
console.log(stepLabel(3, totalSteps, "Add Bank Account"));
|
|
69
|
+
console.log(chalk.gray(" Connect a bank account to start receiving payments.\n"));
|
|
70
|
+
let existingBanks = [];
|
|
71
|
+
try {
|
|
72
|
+
this.spinner.start("Checking existing bank accounts...");
|
|
73
|
+
const data = await this.api.get("/client/banks", "apikey");
|
|
74
|
+
existingBanks = Array.isArray(data)
|
|
75
|
+
? data
|
|
76
|
+
: (data?.message ?? data?.data ?? data ?? []);
|
|
77
|
+
if (!Array.isArray(existingBanks))
|
|
78
|
+
existingBanks = [];
|
|
79
|
+
this.spinner.stop();
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
this.spinner.stop();
|
|
83
|
+
// Non-fatal: proceed to add flow if fetch fails
|
|
84
|
+
}
|
|
85
|
+
if (existingBanks.length > 0) {
|
|
86
|
+
info(`You already have ${existingBanks.length} bank account(s):`);
|
|
87
|
+
console.log("");
|
|
88
|
+
for (const b of existingBanks) {
|
|
89
|
+
kvLine(`${b.bankShortName ?? b.bankName ?? "—"} ${maskAccountNumber(b.accountNumber ?? "")}`, statusBadge(b.status ?? "UNKNOWN"));
|
|
110
90
|
}
|
|
111
|
-
console.log(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
this.spinner.start("Checking existing webhooks...");
|
|
117
|
-
const data = await this.api.get("/client/webhooks", "apikey");
|
|
118
|
-
existingWebhooks = Array.isArray(data)
|
|
119
|
-
? data
|
|
120
|
-
: (data?.data ?? data ?? []);
|
|
121
|
-
if (!Array.isArray(existingWebhooks))
|
|
122
|
-
existingWebhooks = [];
|
|
123
|
-
this.spinner.stop();
|
|
91
|
+
console.log("");
|
|
92
|
+
const addAnother = await promptConfirm("Would you like to add another bank account?", false);
|
|
93
|
+
if (addAnother) {
|
|
94
|
+
await BanksAdd.run([]);
|
|
124
95
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
96
|
+
else {
|
|
97
|
+
markStepComplete("bank");
|
|
98
|
+
success("Using existing bank account.");
|
|
128
99
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
await BanksAdd.run([]);
|
|
103
|
+
}
|
|
104
|
+
console.log("");
|
|
105
|
+
// Step 4: Add Webhook — always refetch from API
|
|
106
|
+
if (!getApiKey()) {
|
|
107
|
+
this.error("API key is required. Run `apipay keys:create` first.", {
|
|
108
|
+
exit: 1,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
console.log(stepLabel(4, totalSteps, "Register Webhook"));
|
|
112
|
+
console.log(chalk.gray(" Set up a webhook to receive transaction notifications.\n"));
|
|
113
|
+
let existingWebhooks = [];
|
|
114
|
+
try {
|
|
115
|
+
this.spinner.start("Checking existing webhooks...");
|
|
116
|
+
const data = await this.api.get("/client/webhooks", "apikey");
|
|
117
|
+
existingWebhooks = Array.isArray(data)
|
|
118
|
+
? data
|
|
119
|
+
: (data?.data ?? data ?? []);
|
|
120
|
+
if (!Array.isArray(existingWebhooks))
|
|
121
|
+
existingWebhooks = [];
|
|
122
|
+
this.spinner.stop();
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
this.spinner.stop();
|
|
126
|
+
// Non-fatal: proceed to add flow if fetch fails
|
|
127
|
+
}
|
|
128
|
+
if (existingWebhooks.length > 0) {
|
|
129
|
+
info(`You already have ${existingWebhooks.length} webhook(s):`);
|
|
130
|
+
console.log("");
|
|
131
|
+
const table = createTable(["URL", "Type", "Status", "Bank"], existingWebhooks.map((w) => [
|
|
132
|
+
w.webhookUrl ? maskLongString(w.webhookUrl) : "—",
|
|
133
|
+
w.type ?? "—",
|
|
134
|
+
statusBadge(w.isActive ? "ACTIVE" : "INACTIVE"),
|
|
135
|
+
w.bankAccount?.bankShortName
|
|
136
|
+
? `${w.bankAccount.bankShortName} ${maskAccountNumber(w.bankAccount.accountNumber ?? "")}`
|
|
137
|
+
: "—",
|
|
138
|
+
]));
|
|
139
|
+
console.log(table);
|
|
140
|
+
console.log("");
|
|
141
|
+
const addAnother = await promptConfirm("Would you like to add another webhook?", false);
|
|
142
|
+
if (addAnother) {
|
|
143
|
+
await WebhooksAdd.run([]);
|
|
150
144
|
}
|
|
151
145
|
else {
|
|
152
|
-
|
|
146
|
+
markStepComplete("webhook");
|
|
147
|
+
success("Using existing webhook.");
|
|
153
148
|
}
|
|
154
|
-
console.log("");
|
|
155
149
|
}
|
|
150
|
+
else {
|
|
151
|
+
await WebhooksAdd.run([]);
|
|
152
|
+
}
|
|
153
|
+
console.log("");
|
|
156
154
|
await this.printFinalSummary();
|
|
157
155
|
}
|
|
158
156
|
async printFinalSummary() {
|
|
@@ -161,7 +159,7 @@ export default class Setup extends BaseCommand {
|
|
|
161
159
|
console.log(chalk.green.bold(" ║ ✓ Setup Complete! ║"));
|
|
162
160
|
console.log(chalk.green.bold(" ╚══════════════════════════════════════╝"));
|
|
163
161
|
console.log("");
|
|
164
|
-
this.printChecklist(
|
|
162
|
+
this.printChecklist();
|
|
165
163
|
console.log("");
|
|
166
164
|
info(`Dashboard: ${chalk.underline.cyan("https://my.apipay.vn")}`);
|
|
167
165
|
info(`Docs: ${chalk.underline.cyan("https://docs.apipay.vn")}`);
|
|
@@ -176,7 +174,7 @@ export default class Setup extends BaseCommand {
|
|
|
176
174
|
await PayCreate.run([]);
|
|
177
175
|
}
|
|
178
176
|
}
|
|
179
|
-
printChecklist(
|
|
177
|
+
printChecklist() {
|
|
180
178
|
const labels = {
|
|
181
179
|
login: "Login",
|
|
182
180
|
"api-key": "API Key",
|
|
@@ -184,9 +182,8 @@ export default class Setup extends BaseCommand {
|
|
|
184
182
|
webhook: "Webhook",
|
|
185
183
|
};
|
|
186
184
|
for (const step of SETUP_STEPS) {
|
|
187
|
-
const
|
|
188
|
-
const
|
|
189
|
-
const label = done ? chalk.white(labels[step]) : chalk.gray(labels[step]);
|
|
185
|
+
const icon = chalk.green("✓");
|
|
186
|
+
const label = chalk.white(labels[step]);
|
|
190
187
|
console.log(` ${icon} ${label}`);
|
|
191
188
|
}
|
|
192
189
|
}
|