30 lines
823 B
TypeScript
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");
|
|
},
|
|
});
|
|
}
|