49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
|
|
import { BidsModule } from './modules/bids/bids.module';
|
|
import { DatabasesModule } from './modules/databases/databases.module';
|
|
import { AppConfigsModule } from './modules/app-configs/app-configs.module';
|
|
import { AppValidatorsModule } from './modules/app-validators/app-validators.module';
|
|
import { AuthModule } from './modules/auth/auth.module';
|
|
import { AdminsModule } from './modules/admins/admins.module';
|
|
import { AuthenticationMiddleware } from './modules/auth/middlewares/authentication.middleware';
|
|
import {
|
|
clientExcludeAuth,
|
|
excludeAuth,
|
|
excludeAuthor,
|
|
} from './system/routes/exclude-route';
|
|
import { AuthorizationMiddleware } from './modules/admins/middlewares/authorization.middleware';
|
|
import { ClientAuthenticationMiddleware } from './modules/auth/middlewares/client-authentication.middleware';
|
|
import { NotificationModule } from './modules/notification/notification.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
BidsModule,
|
|
DatabasesModule,
|
|
AppConfigsModule,
|
|
AppValidatorsModule,
|
|
AuthModule,
|
|
AdminsModule,
|
|
NotificationModule,
|
|
],
|
|
controllers: [],
|
|
providers: [],
|
|
})
|
|
export class AppModule {
|
|
configure(consumer: MiddlewareConsumer) {
|
|
consumer
|
|
.apply(AuthenticationMiddleware)
|
|
.exclude(...excludeAuth)
|
|
.forRoutes({ path: 'admin/*', method: RequestMethod.ALL });
|
|
|
|
consumer
|
|
.apply(AuthorizationMiddleware)
|
|
.exclude(...excludeAuthor)
|
|
.forRoutes({ path: 'admin/*', method: RequestMethod.ALL });
|
|
|
|
consumer
|
|
.apply(ClientAuthenticationMiddleware)
|
|
.exclude(...clientExcludeAuth)
|
|
.forRoutes({ path: '/*', method: RequestMethod.ALL });
|
|
}
|
|
}
|