diff --git a/src/app.module.ts b/src/app.module.ts index cfe3b6d..b4cc9a1 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,62 +1,60 @@ - import { Module } from '@nestjs/common'; - import { ConfigModule, ConfigService } from '@nestjs/config'; - import { AppController } from './app.controller'; - import { AppService } from './app.service'; - import appConfig from './config/app.config'; - import databaseConfig from './config/database.config'; - import jwtConfig from './config/jwt.config'; - import { configValidationSchema } from './config/validation.schema'; - 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'; - import { ParentsModule } from './routes/parents/parents.module'; - import { JwtModule } from '@nestjs/jwt'; - import { AuthModule } from './routes/auth/auth.module'; -import { AuthGuard } from './common/guards/auth.guard'; +import { Module } from '@nestjs/common'; +import { ConfigModule, ConfigService } from '@nestjs/config'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import appConfig from './config/app.config'; +import databaseConfig from './config/database.config'; +import jwtConfig from './config/jwt.config'; +import { configValidationSchema } from './config/validation.schema'; +import { UserModule } from './routes/user/user.module'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { APP_FILTER } from '@nestjs/core'; +import { ParentsModule } from './routes/parents/parents.module'; +import { AuthModule } from './routes/auth/auth.module'; +import { SentryGlobalFilter } from '@sentry/nestjs/setup'; - @Module({ - imports: [ - ConfigModule.forRoot({ - // Gestion dynamique des fichiers .env - envFilePath: [`.env.${process.env.NODE_ENV || 'development'}`, '.env'], +@Module({ + imports: [ + ConfigModule.forRoot({ + // Gestion dynamique des fichiers .env + envFilePath: [`.env.${process.env.NODE_ENV || 'development'}`, '.env'], + // envFilePath: '.env', - // Chargement de configurations typées - load: [appConfig, databaseConfig, jwtConfig], + // Chargement de configurations typées + load: [appConfig, databaseConfig, jwtConfig], - isGlobal: true, - validationSchema: configValidationSchema, + 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.database'), + entities: [__dirname + '/**/*.entity{.ts,.js}'], + synchronize: false, + migrations: [__dirname + '/migrations/**/*{.ts,.js}'], + logging: true, }), - 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.database'), - entities: [__dirname + '/**/*.entity{.ts,.js}'], - synchronize: false, - migrations: [__dirname + '/migrations/**/*{.ts,.js}'], - logging: true, - }), - }), - UserModule, - ParentsModule, - AuthModule, - ], - controllers: [AppController], - providers: [AppService, - { provide: APP_FILTER, useClass: AllExceptionsFilter }, - { provide: APP_INTERCEPTOR, useClass: TransformInterceptor }, - { provide: APP_GUARD, useClass: RolesGuard }, - { provide: APP_GUARD, useClass: AuthGuard }, + }), + UserModule, + ParentsModule, + AuthModule, + ], + controllers: [AppController], + providers: [ + AppService, + { + provide: APP_FILTER, + useClass: SentryGlobalFilter + }, - ], - }) - export class AppModule { } + ], +}) +export class AppModule { } diff --git a/src/main.ts b/src/main.ts index 20cdd7b..b12818f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,7 +8,9 @@ import { JwtService } from '@nestjs/jwt'; import { RolesGuard } from './common/guards/roles.guard'; async function bootstrap() { - const app = await NestFactory.create(AppModule, {logger: ["error", "warn", "log", "debug", "verbose"]}); + const app = await NestFactory.create(AppModule, + {logger: ['error', 'warn', 'log', 'debug', 'verbose']}); + app.enableCors(); const configService = app.get(ConfigService); @@ -17,7 +19,19 @@ async function bootstrap() { const config = new DocumentBuilder() .setTitle("P'titsPas API") + .setDescription("API pour l'application P'titsPas") .setVersion('1.0.0') + .addBearerAuth( + { + type: 'http', + scheme: 'Bearer', + bearerFormat: 'JWT', + name: 'Authorization', + description: 'Enter JWT token', + in: 'header', + }, + 'access-token', + ) .build(); const document = SwaggerModule.createDocument(app, config);