From ccc13974d22a47995b5f9f674891a39d54aa0620 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Nov 2022 09:53:33 -0800 Subject: refactor settings --- src/lib/socket.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/lib/socket.js b/src/lib/socket.js index 6678b979..9b4a8dce 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -36,11 +36,8 @@ export const messages = (data) => ({ async payment() { let { amount, invoice } = data; - if (invoice) { - invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); - } - - if (get(user).account_id !== data.account_id) return; + if (invoice) invalidate("app:invoice"); + if (get(user)?.account_id !== data.account_id) return; let payments = get(txns); let i = payments.findIndex((p) => p.id === data.id); -- cgit v1.2.3 From 305f26ccefffe52b3fb65995e8caf437f1a92057 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Nov 2022 10:53:41 -0800 Subject: settings fixes --- src/lib/socket.js | 2 +- src/lib/utils.js | 5 +- .../[username]/settings/[...tab]/+page.server.js | 2 +- .../[username]/settings/[...tab]/+page.svelte | 172 ++++++++++----------- .../[username]/settings/[...tab]/_account.svelte | 2 +- .../[username]/settings/[...tab]/_security.svelte | 11 +- src/routes/(app)/disable2fa/+server.js | 13 +- src/routes/(app)/otpsecret/+server.js | 11 +- 8 files changed, 118 insertions(+), 100 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/lib/socket.js b/src/lib/socket.js index 9b4a8dce..8d84073c 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -36,7 +36,7 @@ export const messages = (data) => ({ async payment() { let { amount, invoice } = data; - if (invoice) invalidate("app:invoice"); + if (invoice) invalidate('app:invoice'); if (get(user)?.account_id !== data.account_id) return; let payments = get(txns); diff --git a/src/lib/utils.js b/src/lib/utils.js index 7e0b8e4f..c3960487 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -37,7 +37,10 @@ export const get = (url, headers = {}) => export const post = (url, body, headers) => { headers = { ...headers, 'content-type': 'application/json', accept: 'application/json' }; return fetch(base + url, { method: 'POST', body: JSON.stringify(body), headers }) - .then((r) => r.text()) + .then(async (r) => { + if (r.ok) return r.text(); + throw new Error(await r.text()); + }) .then((body) => { try { body = JSON.parse(body); diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js index a6fbd9bf..dcaa26b4 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js @@ -16,7 +16,7 @@ export const actions = { }; try { - await post(`/user`, user, auth(cookies)); + ({ user } = await post(`/user`, user, auth(cookies))); } catch (e) { return invalid(400, { message: e.message }); } diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 20e1fd8f..d546e817 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -1,109 +1,109 @@ {#if loaded && user.haspin && $pin?.length !== 6} - + {/if}
- - -
-

- {$t('user.settings.header')} -

- -
- {#each tabs as { name, key }} - - - - {/each} -
- - -
- -
- -
+ + +
+

+ {$t('user.settings.header')} +

+ +
+ {#each tabs as { name, key }} + + + + {/each} +
+ + +
+ +
+ +
- diff --git a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte index 5d5f731f..e49205ca 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte @@ -5,7 +5,7 @@ import { t } from '$lib/translations'; import { upload } from '$lib/upload'; - export let user; + export let user; let selectedTheme = 1; let revealPassword = false; diff --git a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte index 0f45966d..0ffb7834 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte @@ -8,7 +8,7 @@ import { invalidate } from '$app/navigation'; import { page } from '$app/stores'; - export let user, submit; + export let user, submit; let settingPin, setting2fa, disabling2fa; let token = ''; @@ -27,7 +27,11 @@ let otp; $: pinChange($current); let pinChange = async (pin) => { - // otp = await post('/otpsecret', { pin }); + try { + otp = await post('/otpsecret', { pin }); + } catch (e) { + console.log(e); + } }; let locked; @@ -78,7 +82,7 @@ pin = null; submit.click(); } catch (e) { - console.log(e) + console.log(e); failure('Failed to disable pin'); } } else { @@ -113,6 +117,7 @@ toggleDisabling(); } } catch (e) { + console.log(e); failure('Failed to disable 2FA, try again'); } }; diff --git a/src/routes/(app)/disable2fa/+server.js b/src/routes/(app)/disable2fa/+server.js index 237da445..13fcb2b9 100644 --- a/src/routes/(app)/disable2fa/+server.js +++ b/src/routes/(app)/disable2fa/+server.js @@ -1,8 +1,13 @@ +import { error } from '@sveltejs/kit'; import { auth, post } from '$lib/utils'; -export async function PUT({ cookies, request }) { - let body = await request.json(); - let res = await post('/disable2fa', body, auth(cookies)); +export async function POST({ cookies, request }) { + try { + let body = await request.json(); + let res = await post('/disable2fa', body, auth(cookies)); - return new Response(JSON.stringify(res)); + return new Response(JSON.stringify(res)); + } catch (e) { + throw error(500, 'Problem disabling 2fa'); + } } diff --git a/src/routes/(app)/otpsecret/+server.js b/src/routes/(app)/otpsecret/+server.js index 8dec7778..cdd050c8 100644 --- a/src/routes/(app)/otpsecret/+server.js +++ b/src/routes/(app)/otpsecret/+server.js @@ -1,8 +1,13 @@ import { auth, post } from '$lib/utils'; import Qr from 'qrcode-base64'; +import { error } from '@sveltejs/kit'; export async function POST({ cookies, locals, request }) { - let { secret } = await post('/otpsecret', await request.json(), auth(cookies)); - let uri = `otpauth://totp/coinos:${locals.user.username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; - return new Response(JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) })); + try { + let { secret } = await post('/otpsecret', await request.json(), auth(cookies)); + let uri = `otpauth://totp/coinos:${locals.user.username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; + return new Response(JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) })); + } catch (e) { + throw new error(500, 'Problem saving secret'); + } } -- cgit v1.2.3