From ac3a6407a95879ce68e28a1633697de6d7a95770 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 16 Jan 2025 14:56:32 -0800 Subject: event viewer and zaps --- src/routes/(app)/e/[id]/+page.server.ts | 8 ++ src/routes/(app)/e/[id]/+page.svelte | 32 +++++++ src/routes/(app)/post/+server.ts | 9 ++ src/routes/(app)/post/[...path]/+server.ts | 12 +++ .../send/zap/[pubkey]/[...id]/+page.server.ts | 41 +++++++++ .../(app)/send/zap/[pubkey]/[...id]/+page.svelte | 99 ++++++++++++++++++++++ 6 files changed, 201 insertions(+) create mode 100644 src/routes/(app)/e/[id]/+page.server.ts create mode 100644 src/routes/(app)/e/[id]/+page.svelte create mode 100644 src/routes/(app)/post/+server.ts create mode 100644 src/routes/(app)/post/[...path]/+server.ts create mode 100644 src/routes/(app)/send/zap/[pubkey]/[...id]/+page.server.ts create mode 100644 src/routes/(app)/send/zap/[pubkey]/[...id]/+page.svelte (limited to 'src/routes/(app)') diff --git a/src/routes/(app)/e/[id]/+page.server.ts b/src/routes/(app)/e/[id]/+page.server.ts new file mode 100644 index 00000000..e544d261 --- /dev/null +++ b/src/routes/(app)/e/[id]/+page.server.ts @@ -0,0 +1,8 @@ +import { get } from "$lib/utils"; + +export async function load({ params }) { + const event = await get(`/event/${params.id}`); + const author = await get(`/users/${event.pubkey}`); + const zaps = await get(`/zaps/${params.id}`); + return { author, event, zaps }; +} diff --git a/src/routes/(app)/e/[id]/+page.svelte b/src/routes/(app)/e/[id]/+page.svelte new file mode 100644 index 00000000..6e8c1b56 --- /dev/null +++ b/src/routes/(app)/e/[id]/+page.svelte @@ -0,0 +1,32 @@ + + +
+

+ Event +

+
+ +
{event.content}
+
+ + + Zap + +
+ {#each zaps as { amount, user }} + +
+ +
{amount}
+
+
+ {/each} +
+
diff --git a/src/routes/(app)/post/+server.ts b/src/routes/(app)/post/+server.ts new file mode 100644 index 00000000..35c04186 --- /dev/null +++ b/src/routes/(app)/post/+server.ts @@ -0,0 +1,9 @@ +export async function POST({ cookies, params, request }) { + const body = await request.json(); + try { + const result = await post("/event", body, auth(cookies)); + return json(result); + } catch (e: any) { + error(500, e.message); + } +} diff --git a/src/routes/(app)/post/[...path]/+server.ts b/src/routes/(app)/post/[...path]/+server.ts new file mode 100644 index 00000000..84df9a36 --- /dev/null +++ b/src/routes/(app)/post/[...path]/+server.ts @@ -0,0 +1,12 @@ +import { PUBLIC_COINOS_URL as base } from "$env/static/public"; +import { auth } from "$lib/utils"; + +export async function POST({ cookies, fetch, params, request }) { + const { path } = params; + + return fetch(`${base}/${path}`, { + method: "POST", + body: JSON.stringify(await request.json()), + headers: { "Content-Type": "application/json", ...auth(cookies) }, + }); +} diff --git a/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.server.ts b/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.server.ts new file mode 100644 index 00000000..1dd80d20 --- /dev/null +++ b/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.server.ts @@ -0,0 +1,41 @@ +import getRates from "$lib/rates"; +import { auth, fd, post } from "$lib/utils"; +import { fail, redirect } from "@sveltejs/kit"; + +export async function load({ params, parent }) { + const { user } = await parent(); + const data = { ...params }; + const rates = await getRates(); + + data.rate = rates[user.currency]; + return data; +} + +export const actions = { + setAmount: async ({ cookies, params, request }) => { + const data = await fd(request); + const { id, pubkey } = params; + const { amount } = data; + + data.request = await post( + "/zapRequest", + { id, amount, pubkey }, + auth(cookies), + ); + + return data; + }, + + send: async ({ cookies, request }) => { + let p; + try { + const body = await fd(request); + + p = await post("/payments", body, auth(cookies)); + } catch (_) { + return fail(400, { message: "payments.failedToRoute" }); + } + + redirect(307, `/sent/${p.id}`); + }, +}; diff --git a/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.svelte b/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.svelte new file mode 100644 index 00000000..4a4928ea --- /dev/null +++ b/src/routes/(app)/send/zap/[pubkey]/[...id]/+page.svelte @@ -0,0 +1,99 @@ + + +
+ {#if form?.message} +
+ {$t(form.message)} +
+ {/if} + {#if amount} +
+

+ {$t("payments.send")} +

+ + +
+ +
+ + + + + +
+ {:else} +
+ + + + + + + {/if} +
-- cgit v1.2.3