import { Module, MiddlewareConsumer, NestModule, RequestMethod } from "@nestjs/common"; import { ConfigModule } from "./config/config.module"; import { DbModule } from "./db/db.module"; import { HealthModule } from "./modules/health/health.module"; import { AuthModule } from "./modules/auth/auth.module"; import { BearerMiddleware } from "./modules/auth/bearer.middleware"; import { JobsModule } from "./modules/jobs/jobs.module"; import { TodosModule } from "./modules/todos/todos.module"; import { AiModule } from "./modules/ai/ai.module"; import { HealthTabModule } from "./modules/health-tab/health-tab.module"; import { AgendaModule } from "./modules/agenda/agenda.module"; import { ProjectsModule } from "./modules/projects/projects.module"; @Module({ imports: [ ConfigModule, DbModule, HealthModule, AuthModule, JobsModule, TodosModule, AiModule, HealthTabModule, AgendaModule, ProjectsModule, ], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer .apply(BearerMiddleware) .exclude( { path: "health", method: RequestMethod.GET }, { path: "agenda/ical/:secret", method: RequestMethod.GET }, { path: "agenda/google/oauth/callback", method: RequestMethod.GET }, ) .forRoutes("*"); } }