96 lines
3.3 KiB
TypeScript
96 lines
3.3 KiB
TypeScript
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
|
|
import { Module } from '@nestjs/common';
|
|
import { EventEmitterModule } from '@nestjs/event-emitter';
|
|
import { GraphQLModule } from '@nestjs/graphql';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { PostgresDialect } from 'kysely';
|
|
import { join } from 'path';
|
|
import { Pool } from 'pg';
|
|
import { AppController } from './app.controller';
|
|
import { AppService } from './app.service';
|
|
import { ConfigModule } from './core/config/config.module';
|
|
import { DatabaseModule } from './core/database/database.module';
|
|
import { PrismaModule } from './core/database/prisma.module';
|
|
import { ApplicationAccountingModule } from './modules/app-accounting/app-accounting.module';
|
|
import { ApplicationControlCenterModule } from './modules/app-control-center/app-control-center.module';
|
|
import { ApplicationManagerModule } from './modules/app-manager/app-manager.module';
|
|
import { ApplicationTicketSystemModule } from './modules/app-ticket-system/app-ticket-system.module';
|
|
import { AnomalyDetectionModule } from './modules/feat-anomalies/anomaly-detection.module';
|
|
import { FeatureEtlModule } from './modules/feat-etl/feat-etl.module';
|
|
import { FeatReportsModule } from './modules/feat-reports/feat-reports.module';
|
|
import { TicketSystemModule } from './modules/feat-tickets/ticket-system.module';
|
|
import { FeatureCalculationModule } from './modules/feat-calculation/feat-calculation.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule,
|
|
|
|
// DatabaseModule.forRootAsync({
|
|
// isGlobal: true,
|
|
// inject: [ConfigService],
|
|
// useFactory(config: ConfigService) {
|
|
// return {
|
|
// config: {
|
|
// dialect: new PostgresDialect({
|
|
// pool: new Pool({
|
|
// host: config.databaseHost,
|
|
// port: config.databasePort,
|
|
// database: config.databaseName,
|
|
// user: config.databaseUser,
|
|
// password: config.databasePassword,
|
|
// }),
|
|
// }),
|
|
// },
|
|
// };
|
|
// },
|
|
// }),
|
|
DatabaseModule.forRoot({
|
|
// isGlobal: true,
|
|
dialect: new PostgresDialect({
|
|
pool: new Pool({
|
|
host: 'db',
|
|
port: 5432,
|
|
database: 'avicenna',
|
|
user: 'johndoe',
|
|
password: 'randompassword',
|
|
}),
|
|
}),
|
|
}),
|
|
// DatabaseModule.forRoot({
|
|
// dialect: new PostgresDialect({
|
|
// pool: new Pool({
|
|
// host: 'localhost',
|
|
// port: 54322,
|
|
// database: 'postgres',
|
|
// user: 'postgres',
|
|
// password: 'postgres',
|
|
// }),
|
|
// }),
|
|
// }),
|
|
PrismaModule.forRoot(),
|
|
ScheduleModule.forRoot(),
|
|
EventEmitterModule.forRoot(),
|
|
GraphQLModule.forRoot<ApolloDriverConfig>({
|
|
driver: ApolloDriver,
|
|
playground: true,
|
|
autoSchemaFile: join(process.cwd(), 'src/core/database/schema.gql'),
|
|
sortSchema: true,
|
|
subscriptions: {
|
|
'graphql-ws': true,
|
|
},
|
|
}),
|
|
FeatureEtlModule,
|
|
FeatReportsModule,
|
|
FeatureCalculationModule,
|
|
TicketSystemModule,
|
|
AnomalyDetectionModule,
|
|
ApplicationManagerModule,
|
|
ApplicationAccountingModule,
|
|
ApplicationControlCenterModule,
|
|
ApplicationTicketSystemModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [AppService],
|
|
})
|
|
export class AppModule {}
|