From 867aec092b6672168e7cafbdcf2410940257371c Mon Sep 17 00:00:00 2001 From: marcos-silva-rodrigues Date: Thu, 30 Jan 2025 16:06:13 -0300 Subject: [PATCH] FEAT: add svg --- src/modules/theme/theme.controller.ts | 4 ++-- src/modules/theme/theme.service.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/modules/theme/theme.controller.ts b/src/modules/theme/theme.controller.ts index 94335e7..e3745ce 100644 --- a/src/modules/theme/theme.controller.ts +++ b/src/modules/theme/theme.controller.ts @@ -95,10 +95,10 @@ export class ThemeController { } private validMimeType(file: Express.Multer.File) { - const mimeTypesValid = ['image/jpeg', 'image/jpg', 'image/png']; + const mimeTypesValid = ['image/jpeg', 'image/jpg', 'image/png', 'image/svg+xml']; if (file && !mimeTypesValid.includes(file.mimetype)) { - throw new HttpException(`O Arquivo ${file.fieldname} deve ser jpeg, jpg ou png`, HttpStatus.BAD_REQUEST); + throw new HttpException(`O Arquivo ${file.fieldname} deve ser jpeg, jpg, png ou svg`, HttpStatus.BAD_REQUEST); } } diff --git a/src/modules/theme/theme.service.ts b/src/modules/theme/theme.service.ts index 64583e7..b62338b 100644 --- a/src/modules/theme/theme.service.ts +++ b/src/modules/theme/theme.service.ts @@ -96,11 +96,18 @@ export class ThemeService implements OnModuleInit { private async sendFile(file: Express.Multer.File, stream$: ReplaySubject) { const chunkSize = 4 * 1024 * 1024; const bufferStream = new CustomBufferStream(file.buffer, chunkSize); + const parseMimitypeForExtension = { + 'image/jpeg': '.jpeg', + 'image/jpg': '.jpg', + 'image/png': '.png', + 'image/svg+xml': '.svg', + } + + const extension = parseMimitypeForExtension[file.mimetype]; return new Promise((resolve, reject) => { bufferStream.on('data', (chunk) => { - const mimetype = file.mimetype.split('/')[1]; // example image/jpeg - const filename = file.fieldname.concat(".", mimetype); + const filename = file.fieldname.concat(extension); stream$.next({ customerId: '', displayName: '',