28 lines
820 B
TypeScript
28 lines
820 B
TypeScript
import { jsonError } from "../../common.js";
|
|
|
|
export async function onRequestPost(context: RequestContext) {
|
|
const { body } = context.data;
|
|
|
|
if (
|
|
!Array.isArray(body) ||
|
|
body.find((attachment) => typeof attachment !== "string")
|
|
)
|
|
return jsonError("Request body must be an array of strings", 400);
|
|
|
|
if (body.length > 3) return jsonError("Too many video ids", 400);
|
|
|
|
const kvPromises = [];
|
|
|
|
for (const attachment of body)
|
|
kvPromises.push(context.env.DATA.get(`videoprocessing_${attachment}`));
|
|
|
|
const kvResults = await Promise.allSettled(kvPromises);
|
|
|
|
if (kvResults.find((result) => result.status === "rejected"))
|
|
return jsonError("Failed to check status of attachments", 500);
|
|
|
|
return new Response(null, {
|
|
status: kvResults.find((result) => result !== null) ? 409 : 204,
|
|
});
|
|
}
|