30 lines
994 B
TypeScript
30 lines
994 B
TypeScript
"use server";
|
|
|
|
import { revalidatePath } from "next/cache";
|
|
import { cleanText } from "@/server/web/form-data";
|
|
import { resolvePortalLocale } from "@/server/i18n/resolver";
|
|
import { requirePortalBackend } from "@/server/web/portal";
|
|
|
|
export async function createRevisionRequest(projectId: string, formData: FormData) {
|
|
try {
|
|
const { actor, context, service } = await requirePortalBackend();
|
|
const locale = await resolvePortalLocale(context);
|
|
const description = cleanText(formData.get("description"));
|
|
if (!description) return { errorKey: "portal.revision.errors.descriptionRequired" };
|
|
|
|
service.requestRevision(actor, {
|
|
projectId,
|
|
description,
|
|
sourceLocale: locale.locale,
|
|
});
|
|
revalidatePath(`/portal/projects/${projectId}`);
|
|
revalidatePath("/portal/revisions");
|
|
return { success: true };
|
|
} catch (error) {
|
|
console.error("Portal revision request failed", error);
|
|
return {
|
|
errorKey: "portal.revision.error",
|
|
};
|
|
}
|
|
}
|