import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { MongooseModule } from '@nestjs/mongoose'; import Configuration from './config/configuration'; import { VersioningModule } from './versioning/versioning.module'; import { PerformanceModule } from './performance/performance.module'; import { AirportModule } from './airport/airport.module'; import { LoggingModule } from './logging/logging.module'; import { LoggingController } from './logging/logging.controller'; import { AirportController } from './airport/airport.controller'; import { InboundModule } from './inbound/inbound.module'; import { InboundController } from './inbound/inbound.controller'; @Module({ imports: [ ConfigModule.forRoot({ load: [Configuration], isGlobal: true, }), MongooseModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: async (config: ConfigService) => ({ uri: `mongodb://${config.get( 'database.host', )}:${config.get('database.port')}/${config.get( 'database.name', )}`, }), }), VersioningModule, PerformanceModule, AirportModule, LoggingModule, InboundModule, ], controllers: [LoggingController, AirportController, InboundController], }) export class AppModule {}