From 7370d54de16773d26ddd78b439e94af1d86903a6 Mon Sep 17 00:00:00 2001 From: Micah Galizia Date: Thu, 28 Nov 2024 20:26:02 -0500 Subject: [PATCH] fix: error display for all scene creation failures --- packages/api/src/utils/localstore.ts | 6 +++--- packages/mui/src/middleware/ContentMiddleware.ts | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/api/src/utils/localstore.ts b/packages/api/src/utils/localstore.ts index 38aa55d..c0151ed 100644 --- a/packages/api/src/utils/localstore.ts +++ b/packages/api/src/utils/localstore.ts @@ -34,7 +34,7 @@ function getContentTypeExtension(contentType: string): string | null { export function getValidExtension(file: Express.Multer.File) { const idx = VALID_CONTENT_TYPES.indexOf(file.mimetype); if (idx === -1) - throw new Error(`Invalid mime type: ${file.mimetype}`, { cause: 400 }); + throw new Error(`Invalid mime type: ${file.mimetype}`, { cause: 406}); return CONTENT_TYPE_EXTS[idx]; } @@ -93,7 +93,7 @@ export function updateAssetFromLink( const ext = getContentTypeExtension(headers["content-type"]); if (!ext) throw new Error(`Invalid mime type: ${headers["content-type"]}`, { - cause: 400, + cause: 406, }); const fileName = `${layer}.${ext}`; @@ -146,7 +146,7 @@ export async function updateAssetFromUpload( ): Promise { const ext = getContentTypeExtension(req.file.mimetype); if (!ext) - throw new Error(`Invalid mime type: ${req.file.mimetype}`, { cause: 400 }); + throw new Error(`Invalid mime type: ${req.file.mimetype}`, { cause: 406 }); const src = req.file.path; const fileName = `${layer}.${ext}`; const dest = `${DEST_FOLDER}/${scene.user}/scene/${scene._id}/${fileName}`; diff --git a/packages/mui/src/middleware/ContentMiddleware.ts b/packages/mui/src/middleware/ContentMiddleware.ts index c2dc100..e90f8aa 100644 --- a/packages/mui/src/middleware/ContentMiddleware.ts +++ b/packages/mui/src/middleware/ContentMiddleware.ts @@ -359,8 +359,11 @@ export const ContentMiddleware: Middleware = }; if (err.response.status === 413) { error.msg = "Asset too big"; - next({ type: "content/error", payload: error }); } + if (err.response.status === 406) { + error.msg = "Invalid asset format"; + } + next({ type: "content/error", payload: error }); if (err.scene) { // delete the failed scene and set the current scene to nothing store.dispatch({