import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'; import { AuthMiddleware } from 'src/middleware/auth.middleware'; import { OAuth2ClientModule } from 'src/modules/objects/oauth2-client/oauth2-client.module'; import { OAuth2TokenModule } from 'src/modules/objects/oauth2-token/oauth2-token.module'; import { UploadModule } from 'src/modules/objects/upload/upload.module'; import { UserModule } from 'src/modules/objects/user/user.module'; import { OAuth2Controller } from './oauth2.controller'; import { OAuth2Service } from './oauth2.service'; @Module({ imports: [UserModule, UploadModule, OAuth2ClientModule, OAuth2TokenModule], controllers: [OAuth2Controller], providers: [OAuth2Service], exports: [OAuth2Service], }) export class OAuth2Module implements NestModule { constructor(private _service: OAuth2Service) {} configure(consumer: MiddlewareConsumer) { consumer.apply(this._service.oauth.express()).forRoutes('oauth2/*'); consumer.apply(AuthMiddleware).forRoutes('oauth2/authorize'); } }