Skip to content
Snippets Groups Projects
Commit 16d26856 authored by shreyvishal's avatar shreyvishal
Browse files

Fixed: Some Change

parent b162fe80
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
"@types/express": "^4.17.21", "@types/express": "^4.17.21",
"@types/ini": "^1.3.33", "@types/ini": "^1.3.33",
"@types/jest": "^29.5.11", "@types/jest": "^29.5.11",
"@types/node": "^20.11.0",
"@types/uuid": "^9.0.7", "@types/uuid": "^9.0.7",
"jest": "^29.7.0", "jest": "^29.7.0",
"nodemon": "^3.0.1", "nodemon": "^3.0.1",
......
import { inject, injectable } from 'inversify'; import { inject, injectable } from "inversify";
import { Request, Response, NextFunction } from 'express'; import { Request, Response, NextFunction } from "express";
import { AppLogger } from '../app/app.logger'; import { AppLogger } from "../app/app.logger";
import { AxiosError } from 'axios'; import { AxiosError } from "axios";
import { TLService } from '../tl/tl.service'; import { TLService } from "../tl/tl.service";
@injectable() @injectable()
export class ErrorHandlerMiddleware { export class ErrorHandlerMiddleware {
constructor(@inject(AppLogger) private logger: AppLogger, @inject(TLService) private tlService: TLService) { } constructor(
@inject(AppLogger) private logger: AppLogger,
@inject(TLService) private tlService: TLService
) {}
public async handleError(error: Error | AxiosError, req: Request, res: Response, next: NextFunction) { public async handleError(
const { response } = error as AxiosError; error: Error | AxiosError,
if (response?.status === 400) { req: Request,
const transformedResponse = await this.tlService.transform(response.data, "ps_error"); res: Response,
return res.status(response.status).json(transformedResponse); next: NextFunction
} ) {
this.logger.error("%s", error.stack); const { response } = error as AxiosError;
const statusCode = res.statusCode === 200 ? 500 : res.statusCode; if (response?.status === 400) {
res.status(statusCode).json({ const transformedResponse = await this.tlService.transform(
error: { response.data,
message: error.message "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({
error: {
message: error.message
}
});
}
} }
import "reflect-metadata"; import "reflect-metadata";
import { describe, it, expect, beforeEach } from "@jest/globals"; import { describe, it, expect, beforeEach, jest } from "@jest/globals";
import { Container } from "inversify";
import { GCLController } from "../../gcl/gcl.controller";
import { GCLService } from "../../gcl/gcl.service";
import { XInputService } from "../../x-input/x-input.service";
import { TLService } from "../../tl/tl.service";
import { AppLogger } from "../../app/app.logger";
import { PSClientService } from "../../psclient/psclient.service";
import { ConfigService } from "../../config/config.service";
import HttpClient from "../../httpclient/http.service";
import { ErrorHandlerMiddleware } from "../../middleware/errorhandler.middleware";
const container = new Container(); import { container } from "../../inversify/inversify.config";
// container.bind(); import { GCLController } from "../../gcl/gcl.controller";
describe("GCL Controller Testing", () => { describe("GCL Controller Testing", () => {
// let appLogger = new AppLogger(); beforeEach(async () => {});
// let configService = new ConfigService();
// let httpClient = new HttpClient(appLogger);
// let xinputService = new XInputService(appLogger, httpClient);
// let psClientService = new PSClientService(configService, httpClient);
// let tlService = new TLService(appLogger);
// let gclService = new GCLService(tlService, psClientService);
// let gclController = new GCLController(gclService, xinputService);
// let errorHandlerMiddleware = new ErrorHandlerMiddleware(appLogger, tlService);
let container: Container;
beforeEach(async () => { it("should be defined", async () => {
container = new Container(); let controller = container.resolve(GCLController);
container.bind<GCLController>(GCLController).toSelf();
container.bind<GCLService>(GCLService).toSelf();
// appLogger = new AppLogger();
// configService = new ConfigService();
// httpClient = new HttpClient(appLogger);
// xinputService = new XInputService(appLogger, httpClient);
// psClientService = new PSClientService(configService, httpClient);
// tlService = new TLService(appLogger);
// gclService = new GCLService(tlService, psClientService);
// gclController = new GCLController(gclService, xinputService);
// errorHandlerMiddleware = new ErrorHandlerMiddleware(appLogger, tlService);
});
it("should be defined", () => { console.log("======>Hello");
// let controller = container.resolve(GCLController);
let service = container.resolve(GCLService);
// const errorHandlerMiddleware = container.get<ErrorHandlerMiddleware>( expect(controller).toEqual({});
// ErrorHandlerMiddleware
// );
// this.app.use(
// errorHandlerMiddleware.handleError.bind(errorHandlerMiddleware)
// );
console.log("======>", service);
expect(service).toBeDefined();
}); });
}); });
...@@ -34,7 +34,10 @@ ...@@ -34,7 +34,10 @@
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */ "types": [
"node",
"reflect-metadata"
] /* Specify type package names to be included without being referenced in a source file. */,
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
"resolveJsonModule": true /* Enable importing .json files. */, "resolveJsonModule": true /* Enable importing .json files. */,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment