67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
import { Module, OnModuleInit } from '@nestjs/common';
|
|
import { AuthController } from './auth.controller';
|
|
import { AuthService } from './services/auth.service';
|
|
import { ClientsModule } from '@nestjs/microservices';
|
|
import {
|
|
getCacheManager,
|
|
getTypeOrm,
|
|
makeKnex,
|
|
makeTypeOrm,
|
|
natsClient,
|
|
} from '@freeblox/shared';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import knex from 'knex';
|
|
import { security } from './config/security.config';
|
|
import { keysProviders } from './providers/keys.providers';
|
|
import { JWTService } from './services/jwt.service';
|
|
import { UserEntity } from './database/entities/user.entity';
|
|
import { UserTokenEntity } from './database/entities/user-token.entity';
|
|
import { OTPService } from './services/otp.service';
|
|
import { BanEntity } from './database/entities/ban.entity';
|
|
import { BanService } from './services/ban.service';
|
|
import { PrivilegeEntity } from './database/entities/privilege.entity';
|
|
import { RoleService } from './services/role.service';
|
|
import { RoleEntity } from './database/entities/role.entity';
|
|
import { RefreshService } from './services/refresh.service';
|
|
|
|
const entities = [
|
|
UserEntity,
|
|
UserTokenEntity,
|
|
BanEntity,
|
|
PrivilegeEntity,
|
|
RoleEntity,
|
|
];
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
ignoreEnvFile: process.env.NODE_ENV === 'development',
|
|
load: [makeKnex('auth', __dirname), makeTypeOrm('auth'), security],
|
|
}),
|
|
getTypeOrm(entities),
|
|
getCacheManager(),
|
|
TypeOrmModule.forFeature(entities),
|
|
ClientsModule.register([natsClient('auth')]),
|
|
],
|
|
controllers: [AuthController],
|
|
providers: [
|
|
...keysProviders,
|
|
JWTService,
|
|
OTPService,
|
|
BanService,
|
|
RoleService,
|
|
RefreshService,
|
|
AuthService,
|
|
],
|
|
})
|
|
export class AuthModule implements OnModuleInit {
|
|
constructor(private readonly config: ConfigService) {}
|
|
|
|
async onModuleInit() {
|
|
const knexInstance = knex(this.config.get('knex'));
|
|
await knexInstance.migrate.latest();
|
|
await knexInstance.seed.run();
|
|
}
|
|
}
|