avicenna/service/data-hub/data-connector/src/app.module.ts

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 {}