From eeb7ce8cae15e12bb22444cc2e57bf2487fbe8d7 Mon Sep 17 00:00:00 2001 From: yaschalew Date: Tue, 23 Jun 2026 10:53:57 +0300 Subject: [PATCH] fix user module --- .../api-common/src/constants/apiModules.ts | 42 +++++++++++++++++++ .../response-transform.interceptor.ts | 20 +++++++++ 2 files changed, 62 insertions(+) create mode 100644 packages/api-common/src/constants/apiModules.ts diff --git a/packages/api-common/src/constants/apiModules.ts b/packages/api-common/src/constants/apiModules.ts new file mode 100644 index 000000000..bb010a02e --- /dev/null +++ b/packages/api-common/src/constants/apiModules.ts @@ -0,0 +1,42 @@ +export const flatResponseModules: string[] = [ + "/api/file-settings", + "/api/auth", + "/api/sessions", + "/api/users", + "/api/roles", + "/api/user-roles", + "/api/permissions", + "/api/role-permissions", + "/api/user-documents", + "/api/documentary-requirements", + "/api/account-configurations", + "/api/applications", + "/api/organization-types", + "/api/default-units", + "/api/default-positions", + "/api/organizations", + "/api/units", + "/api/unit-settings", + "/api/organization-configurations", + "/api/positions", + "/api/employees", + "/api/employee-positions", + "/api/migrate", + "/api/projects", + "/api/position-permissions", + "/api/position-type-permissions", + "/api/position-types", + "/api/position-configurations", + "/api/organization-global-configurations", + "/api/global-unit-configurations", + "/api/position-type-configurations", + "/api/organization-settings", + "/api/location-types", + "/api/locations", + "/api/unit-clusters", + "/api/seals", + "/api/headers", + "/api/footers", + "/api/employee-signatures", + "/api/employee-stamps", +]; \ No newline at end of file diff --git a/packages/api-common/src/interceptors/response-transform.interceptor.ts b/packages/api-common/src/interceptors/response-transform.interceptor.ts index d3a024b62..0348126b6 100644 --- a/packages/api-common/src/interceptors/response-transform.interceptor.ts +++ b/packages/api-common/src/interceptors/response-transform.interceptor.ts @@ -8,6 +8,7 @@ import { import { Readable } from "stream"; import { Observable } from "rxjs"; import { map } from "rxjs/operators"; +import { flatResponseModules } from "../constants/apiModules"; export interface StandardResponse { success: true; @@ -33,6 +34,25 @@ export class ResponseTransformInterceptor implements NestInterceptor< ) { return data; } + const request = _context.switchToHttp().getRequest(); + const path = request.route?.path ?? request.originalUrl ?? ""; + + const shouldFlatten = flatResponseModules.some((module) => + path.startsWith(module), + ); + + if ( + shouldFlatten && + data && + typeof data === "object" && + !Array.isArray(data) + ) { + return { + success: true, + ...data, + timestamp: new Date().toISOString(), + }; + } return { success: true,