feat: complete V1 phases 0-7
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import { MiddlewareConsumer, Module, type NestModule } from '@nestjs/common';
|
||||
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
|
||||
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
|
||||
|
||||
import { AuditModule } from './audit/audit.module';
|
||||
import { AuthModule } from './auth/auth.module';
|
||||
import { CaseManagementModule } from './case-management/case-management.module';
|
||||
import { AuthenticationGuard } from './auth/authentication.guard';
|
||||
import { ApiExceptionFilter } from './common/api-exception.filter';
|
||||
import { ApiResponseInterceptor } from './common/api-response.interceptor';
|
||||
import { RequestIdMiddleware } from './common/request-id.middleware';
|
||||
import { AppConfigModule } from './config/app-config.module';
|
||||
import { DatabaseModule } from './database/database.module';
|
||||
import { HealthController } from './health/health.controller';
|
||||
import { HealthService } from './health/health.service';
|
||||
import { FollowUpsModule } from './follow-ups/follow-ups.module';
|
||||
import { PermissionGuard } from './permissions/permission.guard';
|
||||
import { PermissionsModule } from './permissions/permissions.module';
|
||||
import { ParticipationModule } from './participation/participation.module';
|
||||
import { SecurityModule } from './security/security.module';
|
||||
import { ServiceApplicationsModule } from './service-applications/service-applications.module';
|
||||
import { UsersModule } from './users/users.module';
|
||||
import { ContentNotificationsModule } from './content-notifications/content-notifications.module';
|
||||
import { StatisticsModule } from './statistics/statistics.module';
|
||||
import { RequestMetricsService } from './common/request-metrics.service';
|
||||
import { RequestMetricsInterceptor } from './common/request-metrics.interceptor';
|
||||
import { SystemMetricsController } from './common/system-metrics.controller';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
AppConfigModule,
|
||||
SecurityModule,
|
||||
DatabaseModule,
|
||||
AuditModule,
|
||||
PermissionsModule,
|
||||
ThrottlerModule.forRoot([{ name: 'default', ttl: 60_000, limit: 100 }]),
|
||||
AuthModule,
|
||||
UsersModule,
|
||||
ServiceApplicationsModule,
|
||||
CaseManagementModule,
|
||||
FollowUpsModule,
|
||||
ParticipationModule,
|
||||
ContentNotificationsModule,
|
||||
StatisticsModule,
|
||||
],
|
||||
controllers: [HealthController, SystemMetricsController],
|
||||
providers: [
|
||||
HealthService,
|
||||
RequestMetricsService,
|
||||
{ provide: APP_GUARD, useClass: ThrottlerGuard },
|
||||
{ provide: APP_GUARD, useClass: AuthenticationGuard },
|
||||
{ provide: APP_GUARD, useClass: PermissionGuard },
|
||||
{ provide: APP_INTERCEPTOR, useClass: ApiResponseInterceptor },
|
||||
{ provide: APP_INTERCEPTOR, useClass: RequestMetricsInterceptor },
|
||||
{ provide: APP_FILTER, useClass: ApiExceptionFilter },
|
||||
],
|
||||
})
|
||||
export class AppModule implements NestModule {
|
||||
configure(consumer: MiddlewareConsumer): void {
|
||||
consumer.apply(RequestIdMiddleware).forRoutes('*');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user