mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-19 13:08:11 +02:00
fix: add cache revalidation to snapshot APIs and fix imports
This commit is contained in:
1 parent
85972b287d
commit
05549fbde5
1 file changed
+12
-4
@@ -5,6 +5,7 @@ import { sessionSnapshots } from "@/db/schema";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { sql, and, eq } from "drizzle-orm";
|
import { sql, and, eq } from "drizzle-orm";
|
||||||
import { auth } from "@/lib/auth";
|
import { auth } from "@/lib/auth";
|
||||||
|
import { revalidatePath } from "next/cache";
|
||||||
|
|
||||||
const SaveSnapshotSchema = z.object({
|
const SaveSnapshotSchema = z.object({
|
||||||
codeFournisseur: z.string(),
|
codeFournisseur: z.string(),
|
||||||
@@ -33,13 +34,18 @@ export async function saveSnapshot(raw: unknown) {
|
|||||||
|
|
||||||
const { codeFournisseur, nomFournisseur, magasin, label, changes, summary, type } = parsed.data;
|
const { codeFournisseur, nomFournisseur, magasin, label, changes, summary, type } = parsed.data;
|
||||||
const session = await auth();
|
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 {
|
try {
|
||||||
const [created] = await db
|
const [created] = await db
|
||||||
.insert(sessionSnapshots)
|
.insert(sessionSnapshots)
|
||||||
.values({
|
.values({
|
||||||
userId,
|
userId: finalUserId,
|
||||||
codeFournisseur,
|
codeFournisseur,
|
||||||
nomFournisseur: nomFournisseur ?? null,
|
nomFournisseur: nomFournisseur ?? null,
|
||||||
magasin,
|
magasin,
|
||||||
@@ -49,7 +55,9 @@ export async function saveSnapshot(raw: unknown) {
|
|||||||
type: type ?? "snapshot",
|
type: type ?? "snapshot",
|
||||||
})
|
})
|
||||||
.returning({ id: sessionSnapshots.id });
|
.returning({ id: sessionSnapshots.id });
|
||||||
|
|
||||||
|
revalidatePath("/snapshots");
|
||||||
|
revalidatePath("/exports");
|
||||||
return { success: true, snapshotId: created?.id };
|
return { success: true, snapshotId: created?.id };
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
console.error("Initial snapshot save failed, attempting auto-repair...", err);
|
console.error("Initial snapshot save failed, attempting auto-repair...", err);
|
||||||
@@ -83,7 +91,7 @@ export async function saveSnapshot(raw: unknown) {
|
|||||||
const [retryCreated] = await db
|
const [retryCreated] = await db
|
||||||
.insert(sessionSnapshots)
|
.insert(sessionSnapshots)
|
||||||
.values({
|
.values({
|
||||||
userId,
|
userId: finalUserId,
|
||||||
codeFournisseur,
|
codeFournisseur,
|
||||||
nomFournisseur: nomFournisseur ?? null,
|
nomFournisseur: nomFournisseur ?? null,
|
||||||
magasin,
|
magasin,
|
||||||
|
|||||||
Reference in new issue
Block a user