From ad24f34434368d3767fd147d80d45adc3c28f106 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Oct 2022 21:03:27 -0700 Subject: tickets wip --- src/routes/launch/+page.svelte | 33 +++++++++++++++++++----------- src/routes/launch/purchase/+page.server.js | 19 +++++++++++++++-- src/routes/launch/purchase/+page.svelte | 28 +++++-------------------- src/routes/launch/ticket/+page.server.js | 9 ++++++++ src/routes/launch/ticket/+page.svelte | 32 +++++++++++++++++++++++++---- 5 files changed, 80 insertions(+), 41 deletions(-) create mode 100644 src/routes/launch/ticket/+page.server.js (limited to 'src/routes/launch') diff --git a/src/routes/launch/+page.svelte b/src/routes/launch/+page.svelte index 843c7705..ec649b92 100644 --- a/src/routes/launch/+page.svelte +++ b/src/routes/launch/+page.svelte @@ -8,7 +8,7 @@ $loginRedirect = '/launch/purchase'; let hasTicket = !!user?.accounts.find((a) => tickets.includes(a.asset)); - $: link = user ? $loginRedirect : '/register'; + $: link = hasTicket ? '/launch/ticket' : user ? $loginRedirect : '/register'; $: text = (hasTicket ? 'View' : 'Purchase') + ' Ticket'; beforeNavigate(({ to }) => { @@ -39,26 +39,35 @@ rel="noreferrer">first commit!

-
-

When

-

6pm on October 26

-
-
-

Where

-

1184 Denman Street, #203

-

Vancouver, BC

+ +
+
+
+

When

+

6pm October 26

+
+
+

Where

+

The Loft Lounge

+

1184 Denman Street, #203

+

Vancouver, BC

+
+
+ + Partygoers

- We'll introduce our new interface for merchants to take bitcoin payments and afterwards - we'll network and enjoy tasty food and drinks from The Loft!

- We're charging a nominal $6 entry fee so we can get an idea of how much space to reserve. + We're asking for a nominal $6 entry fee so we can get an idea of how much space to + reserve.

diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js index ff5efc84..3317b420 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/launch/purchase/+page.server.js @@ -7,16 +7,29 @@ import { browser } from '$app/environment'; export const load = async ({ parent }) => { let tickets = await get('/tickets'); - return { ...(await parent()), tickets }; + let { user } = await parent(); + let hasTicket = !!user?.accounts.find((a) => tickets.includes(a.asset)); + if (hasTicket) throw redirect(307, '/launch/ticket'); + return { tickets }; }; export const actions = { internal: async ({ cookies, request }) => { + let form = await request.formData(); + let username = form.get('username'); + + let { address } = await post( + '/invoice', + { invoice: { network: 'liquid' }, user: { username } }, + auth(cookies) + ); + let { ticket } = await get('/ticket'); let { asset } = await post( '/assets', { + address, name: `Launch Party Ticket ${ticket}`, ticker: 'LPT', precision: 0, @@ -25,9 +38,10 @@ export const actions = { domain: 'coinos.io', filename: tickets[ticket] }, - auth(cookies) + { authorization: `Bearer ${env.LAUNCH}` } ); + await post('/send', { amount: 25000, username: 'launch' }, auth(cookies)); await post('/ticket', { asset }, { authorization: `Bearer ${env.LAUNCH}` }); throw redirect(307, `/launch/thanks/${asset}`); @@ -40,6 +54,7 @@ export const actions = { let invoice = { amount: 25000, + memo: 'launch', network: 'lightning', prompt: false, rate: rates[form.get('currency')] diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/launch/purchase/+page.svelte index d31d20f0..d78b95d2 100644 --- a/src/routes/launch/purchase/+page.svelte +++ b/src/routes/launch/purchase/+page.svelte @@ -1,6 +1,7 @@
@@ -48,9 +30,10 @@ alt="Ticket" /> - {#if balance > amount} + {#if balance >= amount}
- + +
diff --git a/src/routes/launch/ticket/+page.server.js b/src/routes/launch/ticket/+page.server.js new file mode 100644 index 00000000..59ea966e --- /dev/null +++ b/src/routes/launch/ticket/+page.server.js @@ -0,0 +1,9 @@ +import { get } from '$lib/utils'; + +export const load = async ({ cookies, parent }) => { + let { user } = await parent(); + let tickets = await get('/tickets'); + let ticket = tickets.findIndex((t) => user.accounts.find((a) => a.asset === t)); + console.log("TICK", ticket) + return { ticket }; +}; diff --git a/src/routes/launch/ticket/+page.svelte b/src/routes/launch/ticket/+page.svelte index 229c18f0..2585c57c 100644 --- a/src/routes/launch/ticket/+page.svelte +++ b/src/routes/launch/ticket/+page.svelte @@ -1,4 +1,28 @@ - + + +
+
+

+ Your Ticket +

+ + Ticket + + +
+
-- cgit v1.2.3