import { MiddlewareConsumer, Module, NestModule, RequestMethod, } from '@nestjs/common'; import { AuthMiddleware } from 'src/middleware/auth.middleware'; import { FlashMiddleware } from 'src/middleware/flash.middleware'; import { ValidateCSRFMiddleware } from 'src/middleware/validate-csrf.middleware'; import { ConfigurationModule } from 'src/modules/config/config.module'; import { UserModule } from 'src/modules/objects/user/user.module'; import { OAuth2Module } from '../oauth2/oauth2.module'; import { SettingsController } from './settings.controller'; import { SettingsService } from './settings.service'; @Module({ controllers: [SettingsController], imports: [ConfigurationModule, UserModule, OAuth2Module], providers: [SettingsService], }) export class SettingsModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer .apply(ValidateCSRFMiddleware) .forRoutes( { path: '/account*', method: RequestMethod.POST }, { path: '/account*', method: RequestMethod.PATCH }, { path: '/account*', method: RequestMethod.DELETE }, ); consumer.apply(AuthMiddleware).forRoutes('account*'); consumer.apply(FlashMiddleware).forRoutes('account*'); } }