From 05549fbde5a41ef3ea54988fe397352cfdf6fd57 Mon Sep 17 00:00:00 2001 From: R0m1k3 Date: Tue, 10 Mar 2026 16:29:45 +0100 Subject: [PATCH] fix: add cache revalidation to snapshot APIs and fix imports --- src/features/snapshots/api/save-snapshot.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/features/snapshots/api/save-snapshot.ts b/src/features/snapshots/api/save-snapshot.ts index 4184b26..e539762 100644 --- a/src/features/snapshots/api/save-snapshot.ts +++ b/src/features/snapshots/api/save-snapshot.ts @@ -5,6 +5,7 @@ import { sessionSnapshots } from "@/db/schema"; import { z } from "zod"; import { sql, and, eq } from "drizzle-orm"; import { auth } from "@/lib/auth"; +import { revalidatePath } from "next/cache"; const SaveSnapshotSchema = z.object({ codeFournisseur: z.string(), @@ -33,13 +34,18 @@ export async function saveSnapshot(raw: unknown) { const { codeFournisseur, nomFournisseur, magasin, label, changes, summary, type } = parsed.data; const session = await auth(); - const userId = session?.user ? Number((session.user as any).id) : null; + const rawUserId = (session?.user as any)?.id; + const userId = rawUserId ? parseInt(String(rawUserId), 10) : null; + + console.log(`[saveSnapshot] User: ${userId} (raw: ${rawUserId}), Supplier: ${codeFournisseur}, Type: ${type}`); + + const finalUserId = (userId && !isNaN(userId)) ? userId : null; try { const [created] = await db .insert(sessionSnapshots) .values({ - userId, + userId: finalUserId, codeFournisseur, nomFournisseur: nomFournisseur ?? null, magasin, @@ -49,7 +55,9 @@ export async function saveSnapshot(raw: unknown) { type: type ?? "snapshot", }) .returning({ id: sessionSnapshots.id }); - + + revalidatePath("/snapshots"); + revalidatePath("/exports"); return { success: true, snapshotId: created?.id }; } catch (err: any) { console.error("Initial snapshot save failed, attempting auto-repair...", err); @@ -83,7 +91,7 @@ export async function saveSnapshot(raw: unknown) { const [retryCreated] = await db .insert(sessionSnapshots) .values({ - userId, + userId: finalUserId, codeFournisseur, nomFournisseur: nomFournisseur ?? null, magasin,