From 0fe63db5e6ee01697f157085d1769b67c72e2dd8 Mon Sep 17 00:00:00 2001 From: Abhishek Y <abhisheky@192.168.1.4> Date: Wed, 6 Dec 2023 16:28:44 +0530 Subject: [PATCH] Fix: Protocol server validation error handling --- mappings/ps_error.jsonata | 3 +++ src/middleware/errorhandler.middleware.ts | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 mappings/ps_error.jsonata diff --git a/mappings/ps_error.jsonata b/mappings/ps_error.jsonata new file mode 100644 index 0000000..9e0f45a --- /dev/null +++ b/mappings/ps_error.jsonata @@ -0,0 +1,3 @@ +{ + "error": error +} \ No newline at end of file diff --git a/src/middleware/errorhandler.middleware.ts b/src/middleware/errorhandler.middleware.ts index ed854f3..3fbf2bb 100644 --- a/src/middleware/errorhandler.middleware.ts +++ b/src/middleware/errorhandler.middleware.ts @@ -1,12 +1,19 @@ import { inject, injectable } from 'inversify'; import { Request, Response, NextFunction } from 'express'; import { AppLogger } from '../app/app.logger'; +import { AxiosError } from 'axios'; +import { TLService } from '../tl/tl.service'; @injectable() export class ErrorHandlerMiddleware { - constructor(@inject(AppLogger) private logger: AppLogger) { } + constructor(@inject(AppLogger) private logger: AppLogger, @inject(TLService) private tlService: TLService) { } - public handleError(error: Error, req: Request, res: Response, next: NextFunction): void { + public async handleError(error: Error | AxiosError, req: Request, res: Response, next: NextFunction) { + const { response } = error as AxiosError; + if (response?.status === 400) { + const transformedResponse = await this.tlService.transform(response.data, "ps_error"); + return res.status(response.status).json(transformedResponse); + } this.logger.error("%s", error.stack); const statusCode = res.statusCode === 200 ? 500 : res.statusCode; res.status(statusCode).json({ -- GitLab