diff options
Diffstat (limited to 'src/routes/+page.server.ts')
| -rw-r--r-- | src/routes/+page.server.ts | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts deleted file mode 100644 index 1e6f60b..0000000 --- a/src/routes/+page.server.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { fail, redirect, error } from '@sveltejs/kit'; -import { - loadUnchecked, - loadAll, - toggle, - addOrUncheck, -} from '$lib/server/services/groceries'; -import { - numericId, - parseFormString, - parseOptionalNumber, -} from '$lib/server/services/validation'; -import type { EnrichedGrocery } from '$lib/server/services/groceries'; -import type { Category } from '$lib/server/services/types'; -import type { Actions, PageServerLoad } from './$types'; - -export interface HomeOutput { - items: EnrichedGrocery[]; - categories: Category[]; - catalog: EnrichedGrocery[]; -} - -export const load: PageServerLoad = async () => { - const unchecked = await loadUnchecked(); - const all = await loadAll(); - return { - items: unchecked.items, - categories: unchecked.categories, - catalog: all.items, - }; -}; - -export const actions: Actions = { - add: async ({ request }) => { - const data = await request.formData(); - const name = parseFormString(data.get('name')); - const categoryId = parseOptionalNumber(data.get('category_id')); - - if (!name) { - return fail(400, { error: 'Le nom est requis' }); - } - - await addOrUncheck(name, categoryId); - const { items } = await loadUnchecked(); - return { success: true, items }; - }, - - toggle: async ({ request }) => { - const data = await request.formData(); - try { - const id = numericId(data.get('id')); - await toggle(id); - } catch { - return fail(400, { error: 'ID invalide' }); - } - return { success: true }; - }, - - addAndEdit: async ({ request }) => { - const data = await request.formData(); - const name = parseFormString(data.get('name')); - const categoryId = parseOptionalNumber(data.get('category_id')); - - if (!name) { - return fail(400, { error: 'Le nom est requis' }); - } - - const { item, created } = await addOrUncheck(name, categoryId); - throw redirect(303, `/grocery/${item.id}`); - }, -}; |
