From 963797c7aeb2719dfe08b8ddb96eba7ec2941fa4 Mon Sep 17 00:00:00 2001 From: sdraris Date: Mon, 25 Aug 2025 10:58:39 +0200 Subject: [PATCH] filters + interceptors + guards added to app.module --- src/app.module.ts | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index dcb4e79..d42393d 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,5 +1,5 @@ import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; +import { ConfigModule, ConfigService } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @@ -8,6 +8,12 @@ import databaseConfig from './config/database.config'; import jwtConfig from './config/jwt.config'; import { configValidationSchema } from './config/validation.schema'; import { AuthModule } from './routes/auth/auth.module'; +import { UserModule } from './routes/user/user.module'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AllExceptionsFilter } from './common/filters/all_exceptions.filters'; +import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core'; +import { TransformInterceptor } from './common/interceptors/transform.interceptor'; +import { RolesGuard } from './common/guards/roles.guard'; @Module({ imports: [ @@ -21,9 +27,30 @@ import { AuthModule } from './routes/auth/auth.module'; isGlobal: true, validationSchema: configValidationSchema, }), + TypeOrmModule.forRootAsync({ + imports: [ConfigModule], + inject: [ConfigService], + useFactory: (config: ConfigService) => ({ + type: 'postgres', + host: config.get('database.host'), + port: config.get('database.port'), + username: config.get('database.username'), + password: config.get('database.password'), + database: config.get('database.name'), + entities: [__dirname + '/**/*.entity{.ts,.js}'], + synchronize: false, + migrations: [__dirname + '/migrations/**/*{.ts,.js}'], + logging: true, + }), + }), AuthModule, + UserModule, ], controllers: [AppController], - providers: [AppService], + providers: [AppService, + { provide: APP_FILTER, useClass: AllExceptionsFilter }, + { provide: APP_INTERCEPTOR, useClass: TransformInterceptor }, + { provide: APP_GUARD, useClass: RolesGuard } + ], }) export class AppModule {}