From 44bee42517e70dce187534dac676f52c7b1f327f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 17 Oct 2022 11:11:52 -0700 Subject: tickets wip --- src/routes/launch/+page.svelte | 5 +- src/routes/launch/purchase/+page.server.js | 31 ++++++- src/routes/launch/purchase/+page.svelte | 67 ++++++++------- src/routes/launch/purchase/card/+page.server.js | 37 ++++++++ src/routes/launch/purchase/card/+page.svelte | 109 ++++++++++++++++++++++++ src/routes/launch/ticket/+page.svelte | 5 ++ src/routes/pay/+page.server.js | 37 -------- src/routes/pay/+page.svelte | 102 ---------------------- 8 files changed, 216 insertions(+), 177 deletions(-) create mode 100644 src/routes/launch/purchase/card/+page.server.js create mode 100644 src/routes/launch/purchase/card/+page.svelte create mode 100644 src/routes/launch/ticket/+page.svelte delete mode 100644 src/routes/pay/+page.server.js delete mode 100644 src/routes/pay/+page.svelte diff --git a/src/routes/launch/+page.svelte b/src/routes/launch/+page.svelte index 5e519eff..da1c779c 100644 --- a/src/routes/launch/+page.svelte +++ b/src/routes/launch/+page.svelte @@ -9,8 +9,7 @@ $redirect = '/launch/purchase'; beforeNavigate(({ to }) => { - console.log(link); - if (link === '/register') info('Please sign in so we can get you a ticket'); + if (to.routeId === 'register') info('Please sign in so we can get you a ticket'); }); @@ -30,7 +29,7 @@

- Come join us at our launch party celebrating 10 years in business! + Come join us at our launch party celebrating our new design and 10 years since our first commit!

When

diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js index 1525034c..03da1e35 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/launch/purchase/+page.server.js @@ -1,10 +1,14 @@ import { auth, get, post } from '$lib/utils'; import tickets from '$lib/tickets'; -export const load = () => get('/ticket'); +export const load = async ({ parent }) => { + let p = await parent(); + let t = await get('/ticket'); + return { ...p, ...t }; +}; export const actions = { - default: async ({ cookies, request }) => { + internal: async ({ cookies, request, parent }) => { let { ticket } = Object.fromEntries(await request.formData()); let r = await post( @@ -22,5 +26,26 @@ export const actions = { ); console.log(r); - } + }, + + lightning: async ({ cookies, request }) => { + let form = await request.formData(); + + let rates = await get('/rates'); + + let invoice = { + amount: parseInt(form.get('amount')), + tip: parseInt(form.get('tip')), + network: 'lightning', + prompt: form.get('prompt') === 'true', + rate: rates[form.get('currency')] + }; + + let user = { username: form.get('username') }; + + let { uuid } = await post('/invoice', { invoice, user }, auth(cookies)); + + throw redirect(307, `/invoice/${uuid}`); + }, + bitcoin: () => console.log('YYEAH') }; diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/launch/purchase/+page.svelte index ecec51df..68c19076 100644 --- a/src/routes/launch/purchase/+page.svelte +++ b/src/routes/launch/purchase/+page.svelte @@ -9,6 +9,7 @@ let amount = 25000; let { address, + currency, account: { balance }, username } = data.user; @@ -35,17 +36,17 @@
- {#if balance > amount} -

- Confirm Purchase -

+

+ Confirm Purchase +

- + -
+ {#if balance > amount} +
+ - +
+ +
- + + + {/if}
diff --git a/src/routes/launch/purchase/card/+page.server.js b/src/routes/launch/purchase/card/+page.server.js new file mode 100644 index 00000000..1393eecc --- /dev/null +++ b/src/routes/launch/purchase/card/+page.server.js @@ -0,0 +1,37 @@ +let stripe = 'https://api.stripe.com/v1'; + +export const actions = { + default: async ({ request }) => { + let form = await request.formData(); + + let headers = new Headers(); + headers.set( + 'Authorization', + 'Basic ' + new Buffer('sk_test_mBv5bAeAhiYSDYFZJNsDwjht:').toString('base64') + ); + + let body = new URLSearchParams({ + 'card[number]': form.get('number'), + 'card[exp_month]': form.get('expiry').slice(0, 2), + 'card[exp_year]': form.get('expiry').slice(-2), + 'card[cvc]': form.get('cvc') + }); + + let method = 'POST'; + + let { id: source } = await fetch(`${stripe}/tokens`, { body, headers, method }).then((r) => + r.json() + ); + + body = new URLSearchParams({ + amount: 600, + currency: 'cad', + source, + description: 'launch ticket' + }); + + let r = await fetch(`${stripe}/charges`, { body, headers, method }).then((r) => r.json()); + + console.log(r); + } +}; diff --git a/src/routes/launch/purchase/card/+page.svelte b/src/routes/launch/purchase/card/+page.svelte new file mode 100644 index 00000000..73f2d880 --- /dev/null +++ b/src/routes/launch/purchase/card/+page.svelte @@ -0,0 +1,109 @@ + + +
+ + + + + + +
+ +
+
diff --git a/src/routes/launch/ticket/+page.svelte b/src/routes/launch/ticket/+page.svelte new file mode 100644 index 00000000..acf3b7a5 --- /dev/null +++ b/src/routes/launch/ticket/+page.svelte @@ -0,0 +1,5 @@ + + diff --git a/src/routes/pay/+page.server.js b/src/routes/pay/+page.server.js deleted file mode 100644 index 1393eecc..00000000 --- a/src/routes/pay/+page.server.js +++ /dev/null @@ -1,37 +0,0 @@ -let stripe = 'https://api.stripe.com/v1'; - -export const actions = { - default: async ({ request }) => { - let form = await request.formData(); - - let headers = new Headers(); - headers.set( - 'Authorization', - 'Basic ' + new Buffer('sk_test_mBv5bAeAhiYSDYFZJNsDwjht:').toString('base64') - ); - - let body = new URLSearchParams({ - 'card[number]': form.get('number'), - 'card[exp_month]': form.get('expiry').slice(0, 2), - 'card[exp_year]': form.get('expiry').slice(-2), - 'card[cvc]': form.get('cvc') - }); - - let method = 'POST'; - - let { id: source } = await fetch(`${stripe}/tokens`, { body, headers, method }).then((r) => - r.json() - ); - - body = new URLSearchParams({ - amount: 600, - currency: 'cad', - source, - description: 'launch ticket' - }); - - let r = await fetch(`${stripe}/charges`, { body, headers, method }).then((r) => r.json()); - - console.log(r); - } -}; diff --git a/src/routes/pay/+page.svelte b/src/routes/pay/+page.svelte deleted file mode 100644 index 3b428511..00000000 --- a/src/routes/pay/+page.svelte +++ /dev/null @@ -1,102 +0,0 @@ - - -
- - - - - - - -
-- cgit v1.2.3