Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Create multi-upload status check
  • Loading branch information
regalijan committed Oct 19, 2023
1 parent 66bcb45 commit 6f250ca
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions functions/api/uploads/status.ts
@@ -0,0 +1,44 @@
export async function onRequestPost(context: RequestContext) {
const { body } = context.data;

if (
!Array.isArray(body) ||
body.find((attachment) => typeof attachment !== "string")
)
return new Response(
'{"error":"Request body must be an array of strings"}',
{
headers: {
"content-type": "application/json",
},
status: 400,
},
);

if (body.length > 3)
return new Response('{"error":"Too many video ids"}', {
headers: {
"content-type": "application/json",
},
status: 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 new Response('{"error":"Failed to check status of attachments"}', {
headers: {
"content-type": "application/json",
},
status: 500,
});

return new Response(null, {
status: kvResults.find((result) => result !== null) ? 409 : 204,
});
}

0 comments on commit 6f250ca

Please sign in to comment.