aboutsummaryrefslogtreecommitdiff
path: root/src/lib/server/services/grocery-actions.ts
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-10-18 22:22:55 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-10-18 22:22:55 +0200
commit4efed80a2f8dc238b420eadf97d56c3eccaadb76 (patch)
tree7732a80745622c097a9e75dfb056603bceb10a23 /src/lib/server/services/grocery-actions.ts
parent0685e9ece66fbcb09c9457027cf7bb2107cc0171 (diff)
refactor: inject the database into every servicemain
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.
Diffstat (limited to 'src/lib/server/services/grocery-actions.ts')
-rw-r--r--src/lib/server/services/grocery-actions.ts11
1 files changed, 5 insertions, 6 deletions
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}`);
}