From fd6e5957f2625e4e12e22c4f018c68ce28f99128 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 17 Jul 2025 16:18:30 -0700 Subject: square connection --- src/locales/en.json | 2 ++ src/routes/(app)/settings/account/+page.server.ts | 6 ++++-- src/routes/(app)/settings/account/+page.svelte | 16 +++++++++++++++- src/routes/(app)/settings/square/+page.server.ts | 18 ++++++++++++++++++ src/routes/(app)/settings/square/+page.svelte | 0 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 src/routes/(app)/settings/square/+page.server.ts create mode 100644 src/routes/(app)/settings/square/+page.svelte (limited to 'src') diff --git a/src/locales/en.json b/src/locales/en.json index 77b2cb20..0ff021cd 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -296,6 +296,8 @@ "placeholder": "Enter an address, invoice or username" }, "settings": { + "connectSquare": "Connect to Square", + "revokeSquare": "Revoke Square Connection", "confirmAutoWithdrawal": "Confirm auto withdrawal settings", "confirmAutoWithdrawalDesc": "Your auto withdrawals have been disabled. Please double check your destination address before re-enabling them or remove the address to dismiss this message.", "tip": "Default tip", diff --git a/src/routes/(app)/settings/account/+page.server.ts b/src/routes/(app)/settings/account/+page.server.ts index f0cc700e..ebb90f05 100644 --- a/src/routes/(app)/settings/account/+page.server.ts +++ b/src/routes/(app)/settings/account/+page.server.ts @@ -1,9 +1,11 @@ import getRates from "$lib/rates"; import updateUser from "$lib/settings"; +import { auth, get } from "$lib/utils"; -export async function load() { +export async function load({ cookies }) { const rates = await getRates(); - return { rates }; + const connect = await get("/square/connect", auth(cookies)); + return { connect, rates }; } export const actions = { diff --git a/src/routes/(app)/settings/account/+page.svelte b/src/routes/(app)/settings/account/+page.svelte index d8b61170..26013cbb 100644 --- a/src/routes/(app)/settings/account/+page.svelte +++ b/src/routes/(app)/settings/account/+page.svelte @@ -13,7 +13,7 @@ let { data } = $props(); let { user } = $state(data); - let { rates, subscriptions } = data; + let { connect, rates, subscriptions } = data; let { currency, email, tip, verified } = $state(user); let rate = rates[currency]; @@ -97,6 +97,8 @@ $effect(() => { if (email !== user.email) verified = false; }); + + let revoke = () => {};
@@ -319,3 +321,15 @@
{/if} + +{#if connect !== "connected"} + + +
{$t("user.settings.connectSquare")}
+{:else} + +{/if} diff --git a/src/routes/(app)/settings/square/+page.server.ts b/src/routes/(app)/settings/square/+page.server.ts new file mode 100644 index 00000000..e00bdf1b --- /dev/null +++ b/src/routes/(app)/settings/square/+page.server.ts @@ -0,0 +1,18 @@ +import { auth, get } from "$lib/utils"; +import { fail, redirect } from "@sveltejs/kit"; + +export async function load({ cookies, url }) { + let connected; + + const query = url.searchParams.toString(); + + try { + await get(`/square/auth?${query}`, auth(cookies)); + connected = true; + } catch (e) { + const { message } = e as Error; + fail(400, { message }); + } + + if (connected) redirect(307, "/settings/account"); +} diff --git a/src/routes/(app)/settings/square/+page.svelte b/src/routes/(app)/settings/square/+page.svelte new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3