add SentryGlobalFilter

This commit is contained in:
Hanim 2025-09-05 14:38:49 +02:00
parent f9f59f9c95
commit 59096a449a
2 changed files with 70 additions and 58 deletions

View File

@ -1,27 +1,24 @@
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({
@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],
@ -51,12 +48,13 @@ import { AuthGuard } from './common/guards/auth.guard';
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 },
providers: [
AppService,
{
provide: APP_FILTER,
useClass: SentryGlobalFilter
},
],
})
export class AppModule { }
})
export class AppModule { }

View File

@ -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);