Multi-upload to image library #56 (#60)

* feat: support for file upload handler to track multiple files

* feat: update image upload endpoint to allow multiple files

* fix: lint
This commit is contained in:
DecDuck
2025-06-01 16:06:56 +10:00
committed by GitHub
parent 3e5c3678d5
commit 40e66def1e
6 changed files with 42 additions and 22 deletions

View File

@ -20,8 +20,8 @@ export default defineEventHandler(async (h3) => {
statusMessage: "Failed to upload file",
});
const [id, options, pull, dump] = uploadResult;
if (!id) {
const [ids, options, pull, dump] = uploadResult;
if (ids.length == 0) {
dump();
throw createError({
statusCode: 400,
@ -48,7 +48,7 @@ export default defineEventHandler(async (h3) => {
},
data: {
mImageLibraryObjectIds: {
push: id,
push: ids,
},
},
});

View File

@ -14,14 +14,16 @@ export default defineEventHandler(async (h3) => {
statusMessage: "This endpoint requires multipart form data.",
});
const uploadResult = await handleFileUpload(h3, {}, ["internal:read"]);
const uploadResult = await handleFileUpload(h3, {}, ["internal:read"], 1);
if (!uploadResult)
throw createError({
statusCode: 400,
statusMessage: "Failed to upload file",
});
const [id, options, pull, dump] = uploadResult;
const [ids, options, pull, dump] = uploadResult;
const id = ids.at(0);
// handleFileUpload reads the rest of the options for us.
const name = options.name;

View File

@ -14,19 +14,20 @@ export default defineEventHandler(async (h3) => {
statusMessage: "This endpoint requires multipart form data.",
});
const uploadResult = await handleFileUpload(h3, {}, ["internal:read"]);
const uploadResult = await handleFileUpload(h3, {}, ["internal:read"], 1);
if (!uploadResult)
throw createError({
statusCode: 400,
statusMessage: "Failed to upload file",
});
const [imageId, options, pull, _dump] = uploadResult;
const [imageIds, options, pull, _dump] = uploadResult;
const title = options.title;
const description = options.description;
const content = options.content;
const tags = options.tags ? (JSON.parse(options.tags) as string[]) : [];
const imageId = imageIds.at(0);
if (!title || !description || !content)
throw createError({