Files
ipv6-sims/app/(internal)/admin/actions.ts
T

25 lines
749 B
TypeScript

"use server";
import { updateSummitRequestStatus } from "@/lib/summit-requests";
import type { SubmissionStatus } from "@/types/admin-submission";
import { revalidatePath } from "next/cache";
const ADMIN_PATHS = ["/admin", "/admin/pending", "/admin/approved", "/admin/rejected"] as const;
const ALLOWED: SubmissionStatus[] = ["pending", "approved", "rejected"];
export async function setRequestStatusAction(publicId: string, status: SubmissionStatus) {
if (!ALLOWED.includes(status)) {
throw new Error("Invalid status");
}
if (!publicId || typeof publicId !== "string") {
throw new Error("Invalid id");
}
await updateSummitRequestStatus(publicId.trim(), status);
for (const p of ADMIN_PATHS) {
revalidatePath(p);
}
}