82 lines
3.4 KiB
TypeScript
82 lines
3.4 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
|
|
import { PrismaModule } from './prisma/prisma.module.js';
|
|
import { RedisModule } from './common/redis/redis.module.js';
|
|
import { createLoggerModule } from './logging/logger.config.js';
|
|
import { AuthModule } from './auth/auth.module.js';
|
|
import { JwtAuthGuard } from './auth/jwt-auth.guard.js';
|
|
import { PermissionsGuard } from './auth/permissions.guard.js';
|
|
import { RequestContextInterceptor } from './auth/request-context.interceptor.js';
|
|
import { BodyLoggingInterceptor } from './logging/body-logging.interceptor.js';
|
|
import { TransformInterceptor } from './common/interceptors/transform.interceptor.js';
|
|
import { AuditLogInterceptor } from './common/interceptors/audit-log.interceptor.js';
|
|
import { AllExceptionsFilter } from './common/filters/http-exception.filter.js';
|
|
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { CleanupService } from './common/cleanup.service.js';
|
|
import { TenantsModule } from './tenants/tenants.module.js';
|
|
import { UsersModule } from './users/users.module.js';
|
|
import { RolesModule } from './roles/roles.module.js';
|
|
import { ResourcesModule } from './resources/resources.module.js';
|
|
import { OrgsModule } from './orgs/orgs.module.js';
|
|
import { DictsModule } from './dicts/dicts.module.js';
|
|
import { ConfigsModule } from './configs/configs.module.js';
|
|
import { AuditLogsModule } from './audit-logs/audit-logs.module.js';
|
|
import { LoginLogsModule } from './login-logs/login-logs.module.js';
|
|
import { SessionsModule } from './sessions/sessions.module.js';
|
|
import { NoticesModule } from './notices/notices.module.js';
|
|
import { AgencyModule } from './agency/agency.module.js';
|
|
import { StaffModule } from './staff/staff.module.js';
|
|
import { CatalogModule } from './catalog/catalog.module.js';
|
|
import { StorageModule } from './storage/storage.module.js';
|
|
import { ElderModule } from './elder/elder.module.js';
|
|
import { PlanModule } from './plan/plan.module.js';
|
|
import { ElderSvcModule } from './elder-svc/elder-svc.module.js';
|
|
import { OrderModule } from './order/order.module.js';
|
|
import { AppController } from './app.controller.js';
|
|
import { AppService } from './app.service.js';
|
|
|
|
@Module({
|
|
imports: [
|
|
ThrottlerModule.forRoot([{ ttl: 60000, limit: 100 }]),
|
|
ScheduleModule.forRoot(),
|
|
createLoggerModule(),
|
|
PrismaModule,
|
|
RedisModule,
|
|
AuthModule,
|
|
TenantsModule,
|
|
UsersModule,
|
|
RolesModule,
|
|
ResourcesModule,
|
|
OrgsModule,
|
|
DictsModule,
|
|
ConfigsModule,
|
|
AuditLogsModule,
|
|
LoginLogsModule,
|
|
SessionsModule,
|
|
NoticesModule,
|
|
AgencyModule,
|
|
StaffModule,
|
|
CatalogModule,
|
|
StorageModule,
|
|
ElderModule,
|
|
PlanModule,
|
|
ElderSvcModule,
|
|
OrderModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [
|
|
AppService,
|
|
CleanupService,
|
|
{ provide: APP_GUARD, useClass: ThrottlerGuard },
|
|
{ provide: APP_GUARD, useClass: JwtAuthGuard },
|
|
{ provide: APP_GUARD, useClass: PermissionsGuard },
|
|
{ provide: APP_INTERCEPTOR, useClass: RequestContextInterceptor },
|
|
{ provide: APP_INTERCEPTOR, useClass: BodyLoggingInterceptor },
|
|
{ provide: APP_INTERCEPTOR, useClass: TransformInterceptor },
|
|
{ provide: APP_INTERCEPTOR, useClass: AuditLogInterceptor },
|
|
{ provide: APP_FILTER, useClass: AllExceptionsFilter },
|
|
],
|
|
})
|
|
export class AppModule {}
|