From 3ab0d99711aebfecac087e80210a592452789f1f Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Wed, 12 Jun 2024 19:10:42 +0100 Subject: [PATCH] Bugfix/Correctly throw 401 error when unauthorized (#2626) correctly throw 401 error when unauthorized --- packages/server/src/services/apikey/index.ts | 9 ++++++++- packages/server/src/services/chatflows/index.ts | 12 ++++++++---- packages/server/src/utils/buildChatflow.ts | 6 +++++- packages/server/src/utils/upsertVector.ts | 11 +++++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/server/src/services/apikey/index.ts b/packages/server/src/services/apikey/index.ts index 06c4f3d5..dd519612 100644 --- a/packages/server/src/services/apikey/index.ts +++ b/packages/server/src/services/apikey/index.ts @@ -55,7 +55,14 @@ const verifyApiKey = async (paramApiKey: string): Promise => { const dbResponse = 'OK' return dbResponse } catch (error) { - throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, `Error: apikeyService.verifyApiKey - ${getErrorMessage(error)}`) + if (error instanceof InternalFlowiseError && error.statusCode === StatusCodes.UNAUTHORIZED) { + throw error + } else { + throw new InternalFlowiseError( + StatusCodes.INTERNAL_SERVER_ERROR, + `Error: apikeyService.verifyApiKey - ${getErrorMessage(error)}` + ) + } } } diff --git a/packages/server/src/services/chatflows/index.ts b/packages/server/src/services/chatflows/index.ts index 54e7ee47..63a33475 100644 --- a/packages/server/src/services/chatflows/index.ts +++ b/packages/server/src/services/chatflows/index.ts @@ -236,10 +236,14 @@ const getSinglePublicChatflow = async (chatflowId: string): Promise => { } throw new InternalFlowiseError(StatusCodes.NOT_FOUND, `Chatflow ${chatflowId} not found`) } catch (error) { - throw new InternalFlowiseError( - StatusCodes.INTERNAL_SERVER_ERROR, - `Error: chatflowsService.getSinglePublicChatflow - ${getErrorMessage(error)}` - ) + if (error instanceof InternalFlowiseError && error.statusCode === StatusCodes.UNAUTHORIZED) { + throw error + } else { + throw new InternalFlowiseError( + StatusCodes.INTERNAL_SERVER_ERROR, + `Error: chatflowsService.getSinglePublicChatflow - ${getErrorMessage(error)}` + ) + } } } diff --git a/packages/server/src/utils/buildChatflow.ts b/packages/server/src/utils/buildChatflow.ts index 85d4472b..b1669d05 100644 --- a/packages/server/src/utils/buildChatflow.ts +++ b/packages/server/src/utils/buildChatflow.ts @@ -417,7 +417,11 @@ export const utilBuildChatflow = async (req: Request, socketIO?: Server, isInter return result } catch (e) { logger.error('[server]: Error:', e) - throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, getErrorMessage(e)) + if (e instanceof InternalFlowiseError && e.statusCode === StatusCodes.UNAUTHORIZED) { + throw e + } else { + throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, getErrorMessage(e)) + } } } diff --git a/packages/server/src/utils/upsertVector.ts b/packages/server/src/utils/upsertVector.ts index 175b7168..855c5b26 100644 --- a/packages/server/src/utils/upsertVector.ts +++ b/packages/server/src/utils/upsertVector.ts @@ -22,6 +22,7 @@ import { getRunningExpressApp } from '../utils/getRunningExpressApp' import { UpsertHistory } from '../database/entities/UpsertHistory' import { InternalFlowiseError } from '../errors/internalFlowiseError' import { StatusCodes } from 'http-status-codes' +import { getErrorMessage } from '../errors/utils' /** * Upsert documents @@ -163,10 +164,12 @@ export const upsertVector = async (req: Request, isInternal: boolean = false) => }) return upsertedResult['result'] ?? { result: 'Successfully Upserted' } - } catch (error) { - logger.error('[server]: Error:', error) - if (error instanceof Error) { - throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, error.message) + } catch (e) { + logger.error('[server]: Error:', e) + if (e instanceof InternalFlowiseError && e.statusCode === StatusCodes.UNAUTHORIZED) { + throw e + } else { + throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, getErrorMessage(e)) } } }