From a0f2701e3e51c064e30fc5b4b5345b0b475f52fa Mon Sep 17 00:00:00 2001 From: Mohamed Marrouchi Date: Tue, 4 Feb 2025 17:54:34 +0100 Subject: [PATCH] refactor: multer upload middleware --- .../channels/web/base-web-channel.ts | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/api/src/extensions/channels/web/base-web-channel.ts b/api/src/extensions/channels/web/base-web-channel.ts index c9c73243..a2079181 100644 --- a/api/src/extensions/channels/web/base-web-channel.ts +++ b/api/src/extensions/channels/web/base-web-channel.ts @@ -64,6 +64,20 @@ import { WEB_CHANNEL_NAME, WEB_CHANNEL_NAMESPACE } from './settings'; import { Web } from './types'; import WebEventWrapper from './wrapper'; +// Handle multipart uploads (Long Pooling only) +const upload = multer({ + limits: { + fileSize: config.parameters.maxUploadSize, + }, + storage: (() => { + if (config.parameters.storageMode === 'memory') { + return memoryStorage(); + } else { + return diskStorage({}); + } + })(), +}).single('file'); // 'file' is the field name in the form + @Injectable() export default abstract class BaseWebChannelHandler< N extends ChannelName, @@ -1313,19 +1327,6 @@ export default abstract class BaseWebChannelHandler< if (!this.isSocketRequest(req)) { if (req.headers['content-type']?.includes('multipart/form-data')) { // Handle multipart uploads (Long Pooling only) - const upload = multer({ - limits: { - fileSize: config.parameters.maxUploadSize, - }, - storage: (() => { - if (config.parameters.storageMode === 'memory') { - return memoryStorage(); - } else { - return diskStorage({}); - } - })(), - }).single('file'); // 'file' is the field name in the form - return upload(req, res, next); } else if (req.headers['content-type']?.includes('text/plain')) { // Handle plain text payloads as JSON (retro-compability)