Spaces:
Sleeping
Sleeping
File size: 4,545 Bytes
fd07338 ffd0171 fd07338 990c0e8 f5957a1 92c8a69 810c001 fd07338 8cffb49 fd07338 9f03bd9 1452e50 fcab6da fd07338 5d9c8a5 fd07338 ffd0171 fd07338 990c0e8 f5957a1 92c8a69 8cffb49 810c001 fd07338 45a5ec1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { ScheduleModule as NestScheduleModule } from '@nestjs/schedule';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AuthModule } from './modules/auth/auth.module';
import { EmailModule } from './modules/email/email.module';
import { CampusModule } from './modules/campus/campus.module';
import { CoursesModule } from './modules/courses/courses.module';
import { EnrollmentsModule } from './modules/enrollments/enrollments.module';
import { FilesModule } from './modules/files/files.module';
import { AssignmentsModule } from './modules/assignments/assignments.module';
import { GradesModule } from './modules/grades/grades.module';
import { AttendanceModule } from './modules/attendance/attendance.module';
import { QuizzesModule } from './modules/quizzes/quizzes.module';
import { LabsModule } from './modules/labs/labs.module';
import { NotificationsModule } from './modules/notifications/notifications.module';
import { MessagingModule } from './modules/messaging/messaging.module';
import { DiscussionsModule } from './modules/discussions/discussions.module';
import { AnnouncementsModule } from './modules/announcements/announcements.module';
import { CommunityModule } from './modules/community/community.module';
import { ScheduleModule } from './modules/schedule/schedule.module';
import { CourseMaterialsModule } from './modules/course-materials/course-materials.module';
import { TasksModule } from './modules/tasks/tasks.module';
import { ReportsModule } from './modules/reports/reports.module';
import { SearchModule } from './modules/search/search.module';
import { AnalyticsModule } from './modules/analytics/analytics.module';
import { SecurityModule } from './modules/security/security.module';
import { SettingsModule } from './modules/settings/settings.module';
import { MonitoringModule } from './modules/monitoring/monitoring.module';
import { BackupModule } from './modules/backup/backup.module';
import { StudyGroupsModule } from './modules/study-groups/study-groups.module';
import { OfficeHoursModule } from './modules/office-hours/office-hours.module';
import { PeerReviewModule } from './modules/peer-review/peer-review.module';
import { PaymentsModule } from './modules/payments/payments.module';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import databaseConfig from './config/database.config';
import { YoutubeModule } from './modules/youtube/youtube.module';
import { GoogleDriveModule } from './modules/google-drive/google-drive.module';
import { QuestionBankModule } from './modules/question-bank/question-bank.module';
import { ExamsModule } from './modules/exams/exams.module';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
load: [databaseConfig],
envFilePath: '.env',
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => {
const dbConfig = configService.get('database');
if (!dbConfig) {
throw new Error('Database configuration is missing');
}
return {
type: 'mysql',
host: dbConfig.host,
port: dbConfig.port,
username: dbConfig.username,
password: dbConfig.password,
database: dbConfig.database,
autoLoadEntities: true,
migrations: [__dirname + '/database/migrations/*{.ts,.js}'],
migrationsRun: false,
synchronize: dbConfig.synchronize,
logging: dbConfig.logging,
ssl: dbConfig.ssl,
};
},
}),
NestScheduleModule.forRoot(),
AuthModule,
EmailModule,
CampusModule,
CoursesModule,
EnrollmentsModule,
YoutubeModule,
GoogleDriveModule,
FilesModule,
AssignmentsModule,
GradesModule,
AttendanceModule,
QuizzesModule,
LabsModule,
NotificationsModule,
MessagingModule,
DiscussionsModule,
AnnouncementsModule,
CommunityModule,
ScheduleModule,
CourseMaterialsModule,
TasksModule,
ReportsModule,
SearchModule,
AnalyticsModule,
SecurityModule,
SettingsModule,
MonitoringModule,
BackupModule,
StudyGroupsModule,
OfficeHoursModule,
PeerReviewModule,
QuestionBankModule,
ExamsModule,
PaymentsModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule { }
|