aboutsummaryrefslogtreecommitdiffstats
path: root/routes/square.ts
diff options
context:
space:
mode:
Diffstat (limited to 'routes/square.ts')
-rw-r--r--routes/square.ts59
1 files changed, 58 insertions, 1 deletions
diff --git a/routes/square.ts b/routes/square.ts
index fd8c3abc..eaffff1e 100644
--- a/routes/square.ts
+++ b/routes/square.ts
@@ -7,8 +7,9 @@ import { sha256 } from "@noble/hashes/sha256";
import { utf8ToBytes } from "@noble/hashes/utils";
import { base64urlnopad as base64 } from "@scure/base";
import { SquareClient } from "square";
+import { v4 } from "uuid";
-const { scopes, url, appId, environment } = config.square;
+const { scopes, url, appId, clientSecret, environment } = config.square;
export default {
async connect(req, res) {
@@ -31,6 +32,62 @@ export default {
);
},
+ async sync(req, res) {
+ try {
+ const { user } = req;
+ let square = await g(`${user.id}:square`);
+
+ let client = new SquareClient({
+ environment,
+ });
+
+ const { refreshToken } = square;
+
+ square = await client.oAuth.obtainToken({
+ clientId: appId,
+ grantType: "refresh_token",
+ refreshToken,
+ });
+
+ await s(`${user.id}:square`, square);
+
+ const { accessToken } = square;
+
+ client = new SquareClient({
+ token: accessToken,
+ environment,
+ });
+
+ // const payments = await authedClient.payments.list({});
+ // console.log(payments);
+ const locs = await client.locations.list({});
+
+ const pay = await client.payments.create({
+ sourceId: "EXTERNAL",
+ idempotencyKey: v4(),
+ amountMoney: {
+ amount: BigInt(1000),
+ currency: "CAD",
+ },
+ // appFeeMoney: {
+ // amount: BigInt(10),
+ // currency: "CAD",
+ // },
+ autocomplete: true,
+ externalDetails: { type: "OTHER", source: `Coinos ${v4()}` },
+ locationId: locs.locations[0].id,
+ referenceId: v4(),
+ note: `Brief description ${v4()}`,
+ });
+
+ console.log(pay);
+
+ res.send({});
+ } catch (e) {
+ console.log(e);
+ }
+ },
+
async auth(req, res) {
const { user } = req;