From 4efed80a2f8dc238b420eadf97d56c3eccaadb76 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Sun, 18 Oct 2026 22:22:55 +0200 Subject: refactor: inject the database into every service Groceries, projects, references and routines become classes holding the Drizzle handle, wired once in services/index.ts alongside categories. Tests build their own instance on an in-memory database. Drops the unused projects.loadAll and projects.rename. --- src/lib/server/services/grocery-actions.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/lib/server/services/grocery-actions.ts') diff --git a/src/lib/server/services/grocery-actions.ts b/src/lib/server/services/grocery-actions.ts index 2eff205..c2b8852 100644 --- a/src/lib/server/services/grocery-actions.ts +++ b/src/lib/server/services/grocery-actions.ts @@ -1,6 +1,5 @@ import { fail, redirect, type ActionFailure } from '@sveltejs/kit'; -import { addOrUncheck, loadUnchecked, toggle } from './groceries'; -import { categoriesService } from '$lib/server/services'; +import { categoriesService, groceriesService } from '$lib/server/services'; import { numericId, parseFormString, parseOptionalNumber } from './validation'; import { isUniqueViolation } from '$lib/server/db/errors'; @@ -8,7 +7,7 @@ export async function toggleGroceryAction(request: Request) { const data = await request.formData(); try { const id = numericId(data.get('id')); - await toggle(id); + await groceriesService.toggle(id); } catch { return fail(400, { error: 'ID invalide' }); } @@ -70,8 +69,8 @@ export async function addGroceryAction(request: Request) { } const categoryId = parseOptionalNumber(data.get('category_id')); - await addOrUncheck(name, categoryId); - const { items } = await loadUnchecked(); + await groceriesService.addOrUncheck(name, categoryId); + const { items } = await groceriesService.loadUnchecked(); return { success: true, items }; } @@ -83,6 +82,6 @@ export async function addGroceryAndEditAction(request: Request) { } const categoryId = parseOptionalNumber(data.get('category_id')); - const { item } = await addOrUncheck(name, categoryId); + const { item } = await groceriesService.addOrUncheck(name, categoryId); throw redirect(303, `/grocery/${item.id}`); } -- cgit v1.3