forked from UKSOURCE/ipv6
25 lines
749 B
TypeScript
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);
|
|
}
|
|
}
|