postiz/apps/backend/src/api/api.module.ts

49 lines
2.1 KiB
TypeScript

import {MiddlewareConsumer, Module, NestModule} from '@nestjs/common';
import {AuthController} from "@gitroom/backend/api/routes/auth.controller";
import {AuthService} from "@gitroom/backend/services/auth/auth.service";
import {UsersController} from "@gitroom/backend/api/routes/users.controller";
import {AuthMiddleware} from "@gitroom/backend/services/auth/auth.middleware";
import {StripeController} from "@gitroom/backend/api/routes/stripe.controller";
import {StripeService} from "@gitroom/nestjs-libraries/services/stripe.service";
import {AnalyticsController} from "@gitroom/backend/api/routes/analytics.controller";
import {PoliciesGuard} from "@gitroom/backend/services/auth/permissions/permissions.guard";
import {PermissionsService} from "@gitroom/backend/services/auth/permissions/permissions.service";
import {IntegrationsController} from "@gitroom/backend/api/routes/integrations.controller";
import {IntegrationManager} from "@gitroom/nestjs-libraries/integrations/integration.manager";
import {SettingsController} from "@gitroom/backend/api/routes/settings.controller";
import {BullMqModule} from "@gitroom/nestjs-libraries/bull-mq-transport/bull-mq.module";
import {ioRedis} from "@gitroom/nestjs-libraries/redis/redis.service";
import {PostsController} from "@gitroom/backend/api/routes/posts.controller";
const authenticatedController = [
UsersController,
AnalyticsController,
IntegrationsController,
SettingsController,
PostsController
];
@Module({
imports: [BullMqModule.forRoot({
connection: ioRedis
})],
controllers: [StripeController, AuthController, ...authenticatedController],
providers: [
AuthService,
StripeService,
AuthMiddleware,
PoliciesGuard,
PermissionsService,
IntegrationManager,
],
get exports() {
return [...this.imports, ...this.providers];
}
})
export class ApiModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(AuthMiddleware)
.forRoutes(...authenticatedController);
}
}