85 lines
3.2 KiB
TypeScript
85 lines
3.2 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { CallerAnalyticsModule } from './caller-analytics/caller-analytics.module.js';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import crypto from 'node:crypto';
|
|
import { LoggerModule } from 'nestjs-pino';
|
|
import { API_PREFIX } from '@lisglosips/contracts';
|
|
import { LOG_REDACT_PATHS } from '@lisglosips/observability';
|
|
import { appConfig, validationSchema } from '../shared/config.js';
|
|
import { AuditLogsModule } from './audit-logs/audit-logs.module.js';
|
|
import { AuditModule } from './audit/audit.module.js';
|
|
import { ActiveCallsModule } from './active-calls/active-calls.module.js';
|
|
import { AuthModule } from './auth/auth.module.js';
|
|
import { BusinessPrefixesModule } from './business-prefixes/business-prefixes.module.js';
|
|
import { CdrsModule } from './cdrs/cdrs.module.js';
|
|
import { CustomerGatewayPoliciesModule } from './customer-gateway-policies/customer-gateway-policies.module.js';
|
|
import { CustomerGatewaysModule } from './customer-gateways/customer-gateways.module.js';
|
|
import { CustomersModule } from './customers/customers.module.js';
|
|
import { DashboardModule } from './dashboard/dashboard.module.js';
|
|
import { DatabaseModule } from './database/database.module.js';
|
|
import { HealthModule } from './health/health.module.js';
|
|
import { LandingLineGroupsModule } from './landing-line-groups/landing-line-groups.module.js';
|
|
import { NumberLibraryModule } from './number-library/number-library.module.js';
|
|
import { RechargesModule } from './recharges/recharges.module.js';
|
|
import { RecordingsModule } from './recordings/recordings.module.js';
|
|
import { QualityModule } from './quality/quality.module.js';
|
|
import { RolesModule } from './roles/roles.module.js';
|
|
import { SecurityModule } from './security/security.module.js';
|
|
import { UsersModule } from './users/users.module.js';
|
|
import { VendorGatewaysModule } from './vendor-gateways/vendor-gateways.module.js';
|
|
import { VendorsModule } from './vendors/vendors.module.js';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
cache: true,
|
|
load: [appConfig],
|
|
validationSchema,
|
|
validationOptions: {
|
|
abortEarly: false,
|
|
allowUnknown: true
|
|
}
|
|
}),
|
|
LoggerModule.forRoot({
|
|
pinoHttp: {
|
|
level: process.env.LISGLOSIPS_LOG_LEVEL ?? 'info',
|
|
name: process.env.LISGLOSIPS_SERVICE_NAME ?? 'api',
|
|
genReqId: (request) =>
|
|
request.headers[process.env.LISGLOSIPS_REQUEST_ID_HEADER ?? 'x-request-id']?.toString() ?? crypto.randomUUID(),
|
|
redact: {
|
|
paths: LOG_REDACT_PATHS,
|
|
censor: '[REDACTED]'
|
|
},
|
|
customProps: () => ({
|
|
apiPrefix: API_PREFIX
|
|
})
|
|
}
|
|
}),
|
|
DatabaseModule,
|
|
SecurityModule,
|
|
AuditModule,
|
|
AuthModule,
|
|
ActiveCallsModule,
|
|
CallerAnalyticsModule,
|
|
BusinessPrefixesModule,
|
|
CdrsModule,
|
|
DashboardModule,
|
|
CustomersModule,
|
|
CustomerGatewaysModule,
|
|
CustomerGatewayPoliciesModule,
|
|
RechargesModule,
|
|
VendorsModule,
|
|
VendorGatewaysModule,
|
|
LandingLineGroupsModule,
|
|
NumberLibraryModule,
|
|
QualityModule,
|
|
RecordingsModule,
|
|
UsersModule,
|
|
RolesModule,
|
|
AuditLogsModule,
|
|
HealthModule
|
|
]
|
|
})
|
|
export class AppModule {}
|