import { MiddlewareConsumer, Module, NestModule, RequestMethod } from '@nestjs/common' import { JwtService } from '@nestjs/jwt' import { AdminController } from './admin.controller' import { AdminMiddleware } from './admin.middleware' import { AdminConsumersModule } from './consumers/consumers.module' import { AdminDeviceBrandsModule } from './device-brands/device-brands.module' import { AdminDevicesModule } from './devices/devices.module' import { AdminGuildsModule } from './guilds/guilds.module' import { AdminLicensesModule } from './licenses/licenses.module' import { AdminPartnersModule } from './partners/partners.module' import { AdminProvidersModule } from './providers/providers.module' import { AdminStockKeepingUnitsModule } from './stock-keeping-units/stock-keeping-units.module' import { AdminTranslateModule } from './translate/translate.module' import { AdminUserAccountsModule } from './users/accounts/accounts.module' import { AdminUsersModule } from './users/users.module' @Module({ controllers: [AdminController], imports: [ AdminUsersModule, AdminUserAccountsModule, AdminTranslateModule, AdminProvidersModule, AdminPartnersModule, AdminPartnersModule, AdminGuildsModule, AdminDeviceBrandsModule, AdminDevicesModule, AdminStockKeepingUnitsModule, AdminLicensesModule, AdminConsumersModule, ], providers: [JwtService], }) export class AdminModule implements NestModule { configure(consumer: MiddlewareConsumer) { // apply middleware to all routes within this module (scoped under /admin) consumer.apply(AdminMiddleware).forRoutes({ path: '/admin*path', method: RequestMethod.ALL, version: '1', }) } }