import { BadRequestException, Module, ValidationPipe } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; // import { ArchivalModule } from './modules/archival/archival.module'; import { AuthenticationModule } from './identity-and-account/authentication/auth.module'; // import { BankCodesModule } from './modules/bank-codes/bank-codes.module'; // import { CsvExportModule } from './modules/exports/csv-exports.module'; import { HealthModule } from './health/health.module'; import { HealthController } from './health/health.controller'; import { NotificationsModule } from './modules/notifications/notifications.module'; import { PreferencesModule } from './identity-and-account/preferences/preferences.module'; import { PrismaModule } from './prisma/prisma.module'; import { ScheduleModule } from '@nestjs/schedule'; import { UsersModule } from './identity-and-account/users-management/users.module'; import { ConfigModule } from '@nestjs/config'; import { APP_FILTER, APP_PIPE } from '@nestjs/core'; import { HttpExceptionFilter } from './common/filters/http-exception.filter'; import { ValidationError } from 'class-validator'; import { PayperiodsModule } from './time-and-attendance/modules/pay-period/pay-periods.module'; import { TimeAndAttendanceModule } from 'src/time-and-attendance/time-and-attendance.module'; @Module({ imports: [ AuthenticationModule, // BankCodesModule, ConfigModule.forRoot({isGlobal: true}), // CsvExportModule, // CustomersModule, // EmployeesModule, HealthModule, NotificationsModule, PayperiodsModule, PreferencesModule, PrismaModule, ScheduleModule.forRoot(), //cronjobs // ShiftsModule, TimeAndAttendanceModule, // TimesheetsModule, UsersModule, ], controllers: [AppController, HealthController], providers: [ AppService, { provide: APP_FILTER, useClass: HttpExceptionFilter }, { provide: APP_PIPE, useValue: new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, exceptionFactory: (errors: ValidationError[] = [])=> { const messages = errors.flatMap((e)=> Object.values(e.constraints ?? {})); return new BadRequestException({ statusCode: 400, error: 'Bad Request', message: messages.length ? messages : errors, }); }, }), }, ], }) export class AppModule {}