import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'; import * as cors from 'cors'; import { ConfigurationModule } from '../config/config.module'; import { JWTModule } from '../jwt/jwt.module'; import { OAuth2Module } from '../oauth2/oauth2.module'; import { OAuth2Service } from '../oauth2/oauth2.service'; import { ObjectsModule } from '../objects/objects.module'; import { AdminApiModule } from './admin/admin.module'; import { ApiController } from './api.controller'; @Module({ controllers: [ApiController], imports: [ ConfigurationModule, JWTModule, ObjectsModule, AdminApiModule, OAuth2Module, ], }) export class ApiModule implements NestModule { private corsOpts = cors({ origin: true, credentials: true }); constructor(private _service: OAuth2Service) {} configure(consumer: MiddlewareConsumer) { consumer.apply(this._service.oauth.express()).forRoutes('/api*'); consumer.apply(this.corsOpts).forRoutes(ApiController); } }