add multi delete function

This commit is contained in:
andrzej 2024-06-27 16:08:03 +02:00
parent d07d54731d
commit 9bf60c2282
1 changed files with 19 additions and 23 deletions

View File

@ -3,34 +3,30 @@ import { revalidatePath } from "next/cache";
import prisma from "./db";
import { redirect } from "next/navigation";
export async function deleteRecord(id: number, pathname: "/story" | "/publication" | "/submission") {
let res = {}
switch (pathname) {
case "/story":
res = await prisma.story.delete({
where: { id }
})
console.log(`deleted: ${res}`)
break;
case "/publication":
res = await prisma.pub.delete({
where: { id }
})
console.log(`deleted: ${res}`)
break;
case "/submission":
res = await prisma.sub.delete({
where: { id }
})
console.log(`deleted: ${res}`)
break;
default:
break;
const tableMap = {
"/story": "story",
"/publication": "pub",
"/submission": "sub"
}
export async function deleteRecord(id: number, pathname: "/story" | "/publication" | "/submission") {
const table = tableMap[pathname]
const res = await prisma[table].delete({ where: { id } })
console.log(`deleted from ${table}: ${res.id}`)
console.log("revalidating: " + pathname)
revalidatePath(pathname)
redirect(pathname)
}
export async function deleteRecords(ids: number[], pathname: "/story" | "/publication" | "/submission") {
const table = tableMap[pathname]
ids.forEach(async (id) => {
const res = await prisma.story.delete({
where: { id }
})
console.log(`deleted from ${table}: ${res.id}`)
})
}