summaryrefslogtreecommitdiff
path: root/server/app.module.ts
blob: 60cf8651408b802d12698ff94d07ae70df96ee36 (plain)
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
import { Module } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { config } from './database/config';
import { ChatRoomModule } from './modules/chat_room.module';
import { UsersModule } from './modules/users.module';
import { ChatRoomGateway } from './providers/gateways/chat_room.gateway';
import { AuthGuard } from './providers/guards/auth.guard';
import { RolesGuard } from './providers/guards/roles.guard';
import { ChatRoomService } from './providers/services/chat_room.service';
import { JwtService } from './providers/services/jwt.service';
import { RolesService } from './providers/services/roles.service';
import { UsersService } from './providers/services/users.service';
import { GuardUtil } from './providers/util/guard.util';

@Module({
  imports: [TypeOrmModule.forRoot(config), UsersModule, ChatRoomModule],
  controllers: [AppController],
  providers: [
    ChatRoomGateway,
    UsersService,
    RolesService,
    JwtService,
    GuardUtil,
    ChatRoomService,
    { provide: APP_GUARD, useClass: AuthGuard }, // auth guard should come before roles guard
    { provide: APP_GUARD, useClass: RolesGuard }, // otherwise users won't be authenticated before roles check
  ],
})
export class AppModule {}