From b3775b5ed3ddd1d52fd3ca095acd3e2b70ac5e3f Mon Sep 17 00:00:00 2001 From: Pranav C Date: Wed, 12 Apr 2023 18:40:29 +0530 Subject: [PATCH] fix: handle exception error response in similar way Signed-off-by: Pranav C --- packages/nocodb-nest/src/app.module.ts | 2 +- .../global-exception.filter.ts | 29 ++++++++++++++----- .../attachments/attachments.controller.ts | 12 +++----- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/packages/nocodb-nest/src/app.module.ts b/packages/nocodb-nest/src/app.module.ts index 00bc3d2170..f830280de1 100644 --- a/packages/nocodb-nest/src/app.module.ts +++ b/packages/nocodb-nest/src/app.module.ts @@ -143,7 +143,7 @@ export const JwtStrategyProvider: Provider = { }, // JwtStrategyProvider, LocalStrategy, - ExtractProjectIdMiddleware, + // ExtractProjectIdMiddleware, ClientService, AuthTokenStrategy, BaseViewStrategy, diff --git a/packages/nocodb-nest/src/filters/global-exception/global-exception.filter.ts b/packages/nocodb-nest/src/filters/global-exception/global-exception.filter.ts index 52aab7da51..aac66ba702 100644 --- a/packages/nocodb-nest/src/filters/global-exception/global-exception.filter.ts +++ b/packages/nocodb-nest/src/filters/global-exception/global-exception.filter.ts @@ -15,8 +15,6 @@ import type { Response } from 'express'; @Catch() export class GlobalExceptionFilter implements ExceptionFilter { catch(exception: any, host: ArgumentsHost) { - console.log(exception) - const ctx = host.switchToHttp(); const response = ctx.getResponse(); @@ -28,17 +26,32 @@ export class GlobalExceptionFilter implements ExceptionFilter { return response.status(400).json(dbError); } - if (exception instanceof BadRequest) { + if (exception instanceof BadRequest || exception.getStatus?.() === 400) { return response.status(400).json({ msg: exception.message }); - } else if (exception instanceof Unauthorized) { + } else if ( + exception instanceof Unauthorized || + exception.getStatus?.() === 401 + ) { return response.status(401).json({ msg: exception.message }); - } else if (exception instanceof Forbidden) { + } else if ( + exception instanceof Forbidden || + exception.getStatus?.() === 403 + ) { return response.status(403).json({ msg: exception.message }); - } else if (exception instanceof NotFound) { + } else if ( + exception instanceof NotFound || + exception.getStatus?.() === 404 + ) { return response.status(404).json({ msg: exception.message }); - } else if (exception instanceof InternalServerError) { + } else if ( + exception instanceof InternalServerError || + exception.getStatus?.() === 500 + ) { return response.status(500).json({ msg: exception.message }); - } else if (exception instanceof NotImplemented) { + } else if ( + exception instanceof NotImplemented || + exception.getStatus?.() === 501 + ) { return response.status(501).json({ msg: exception.message }); } else if (exception instanceof AjvError) { return response diff --git a/packages/nocodb-nest/src/modules/attachments/attachments.controller.ts b/packages/nocodb-nest/src/modules/attachments/attachments.controller.ts index 40ae2979aa..dfac30eea3 100644 --- a/packages/nocodb-nest/src/modules/attachments/attachments.controller.ts +++ b/packages/nocodb-nest/src/modules/attachments/attachments.controller.ts @@ -13,22 +13,18 @@ import { UseInterceptors, } from '@nestjs/common' import multer from 'multer'; -import { FileInterceptor, FilesInterceptor } from '@nestjs/platform-express'; -import { OrgUserRoles, ProjectRoles } from 'nocodb-sdk'; +import { FilesInterceptor } from '@nestjs/platform-express'; import { AuthGuard } from '@nestjs/passport'; import { NC_ATTACHMENT_FIELD_SIZE } from '../../constants'; -import { NcError } from '../../helpers/catchError'; import { UploadAllowedInterceptor } from '../../interceptors/is-upload-allowed/is-upload-allowed.interceptor'; -import { ExtractProjectIdMiddleware } from '../../middlewares/extract-project-id/extract-project-id.middleware'; -import Noco from '../../Noco'; -import { MetaTable } from '../../utils/globals'; +import { ExtractProjectIdMiddleware } from '../../middlewares/extract-project-id/extract-project-id.middleware' import { AttachmentsService } from './attachments.service'; @Controller() export class AttachmentsController { constructor(private readonly attachmentsService: AttachmentsService) {} - @UseGuards(ExtractProjectIdMiddleware, AuthGuard('jwt')) + @UseGuards(AuthGuard('jwt')) @Post( '/api/v1/db/storage/upload', // multer({ @@ -80,7 +76,7 @@ export class AttachmentsController { // catchError(uploadViaURL), // ] // ); - @UseGuards(ExtractProjectIdMiddleware, AuthGuard('jwt')) + @UseGuards(AuthGuard('jwt')) async uploadViaURL(@Body() body: any, @Query('path') path: string) { const attachments = await this.attachmentsService.uploadViaURL({ urls: body,