Files

30 lines
823 B
TypeScript

"use server";
import { eq, not } from "drizzle-orm";
import { revalidatePath } from "next/cache";
import { redirect } from "next/navigation";
import { adminCheck } from "@/lib/auth";
import { db } from "@/lib/db";
import { guides } from "@/lib/db/schema";
import { forceRefresh } from "../settings/api";
import { hideGuideService } from "./service";
export async function hideGuide(id: string) {
return hideGuideService(id, {
adminCheck: async () => {
if (!(await adminCheck())) redirect("/login");
return true;
},
toggle: async (guideId) => {
await db
.update(guides)
.set({ hidden: not(guides.hidden) })
.where(eq(guides.id, guideId));
},
afterToggle: async () => {
await forceRefresh("/guide");
revalidatePath("/admin/guide");
},
});
}