src/app.module.ts
import { Module } from "@nestjs/common";
import { ServeStaticModule } from "@nestjs/serve-static";
import { TypeOrmModule } from "@nestjs/typeorm";
import * as path from "path";
import { AuthModule } from "./module/auth/auth.module";
import { HelperModule } from "./module/helper/helper.module";
import { JwtModule } from "@nestjs/jwt";
import { Config } from "./module/config/entity/config";
import { UserController100 } from "./controller/1.0.0/user.controller";
import { UserService100 } from "./service/1.0.0/user.service";
import { MulterModule } from "@nestjs/platform-express";
import { User } from "./entity/user.entity";
import { Group } from "./entity/group.entity";
import { EmailService } from "./service/1.0.0/email.service";
import { Course } from "./entity/course.entity";
import { CourseController100 } from "./controller/1.0.0/course.controller";
import { FileController100 } from "./controller/1.0.0/file.controller";
import { CoursesService100 } from "./service/1.0.0/course.service";
import { FIleService100 } from "./service/1.0.0/file-descriptor.service";
import { Files } from "./entity/file-descriptor.entity";
import { UserCourse } from "./entity/user-course.entity";
import { CourseType } from "./entity/course-type.entity";
import { UserUniqueFiled } from "./entity/user-unique-field.entity";
import { PdfService } from "./service/1.0.0/pdf.service";
import { FilesCourse } from "./entity/file-course.entity";
import { GlobalService100 } from "./service/1.0.0/global.service";
import { FileType } from "./entity/file-type.entity";
import { Language } from "./entity/language.entity";
import { LanguageService100 } from "./service/1.0.0/language.service";
import { LanguageController100 } from "./controller/1.0.0/language.controller";
import { CourseStatus } from "./entity/course-status.entity";
@Module({
imports: [
MulterModule.register({
dest: path.resolve(__dirname, "../files"),
}),
ServeStaticModule.forRoot({
rootPath: path.resolve(__dirname, "../webroot"),
}),
// database
TypeOrmModule.forRoot(),
// entity
TypeOrmModule.forFeature([
User,
Group,
Course,
Files,
UserCourse,
CourseType,
UserUniqueFiled,
FilesCourse,
FileType,
Language,
CourseStatus,
]),
JwtModule.register({
secret: Config.get("JWT_SECRET"),
signOptions: {
expiresIn: "365d",
},
}),
AuthModule,
HelperModule,
],
controllers: [
// 1.0.0
UserController100,
CourseController100,
FileController100,
LanguageController100,
],
providers: [
// 1.0.0
UserService100,
EmailService,
CoursesService100,
FIleService100,
PdfService,
GlobalService100,
LanguageService100,
],
})
export class AppModule {}