targo-backend/src/app.module.ts

67 lines
2.5 KiB
TypeScript

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 {}