sendou.ink/app/features/vods/vods-schemas.server.ts
2026-01-18 18:21:19 +02:00

22 lines
699 B
TypeScript

import { requireUser } from "~/features/auth/core/user.server";
import * as VodRepository from "./VodRepository.server";
import { vodFormBaseSchema } from "./vods-schemas";
import { canEditVideo } from "./vods-utils";
export const vodFormSchemaServer = vodFormBaseSchema.refine(
async (data) => {
if (!data.vodToEditId) return true;
const user = requireUser();
const vod = await VodRepository.findVodById(data.vodToEditId);
if (!vod) return false;
return canEditVideo({
userId: user.id,
submitterUserId: vod.submitterUserId,
povUserId: typeof vod.pov === "string" ? undefined : vod.pov?.id,
});
},
{ message: "No permissions to edit this VOD", path: ["vodToEditId"] },
);