bid-tool/auto-bid-server/src/app.module.ts

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 });
}
}