SEO_iamge_renamer_starting_.../packages/api/src/app.module.ts
DustyWalker 8f4d069870 feat(api): integrate all core API modules in app configuration
- Import and configure all new API modules in AppModule
- Wire together storage, upload, queue, WebSocket, batches, images, and keywords
- Complete API infrastructure for AI bulk image renaming SaaS
- Enable dependency injection across all service layers

Completes core API endpoints implementation resolving issues §26-§32 and §73-§77.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 17:24:53 +02:00

56 lines
No EOL
1.7 KiB
TypeScript

import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { APP_GUARD } from '@nestjs/core';
import { DatabaseModule } from './database/database.module';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { StorageModule } from './storage/storage.module';
import { UploadModule } from './upload/upload.module';
import { QueueModule } from './queue/queue.module';
import { WebSocketModule } from './websocket/websocket.module';
import { BatchesModule } from './batches/batches.module';
import { ImagesModule } from './images/images.module';
import { KeywordsModule } from './keywords/keywords.module';
import { JwtAuthGuard } from './auth/auth.guard';
import { RateLimitMiddleware } from './common/middleware/rate-limit.middleware';
import { SecurityMiddleware } from './common/middleware/security.middleware';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
envFilePath: ['.env.local', '.env'],
cache: true,
}),
DatabaseModule,
AuthModule,
UsersModule,
StorageModule,
UploadModule,
QueueModule,
WebSocketModule,
BatchesModule,
ImagesModule,
KeywordsModule,
],
providers: [
{
provide: APP_GUARD,
useClass: JwtAuthGuard,
},
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
// Apply security middleware to all routes
consumer
.apply(SecurityMiddleware)
.forRoutes('*');
// Apply rate limiting to authentication routes
consumer
.apply(RateLimitMiddleware)
.forRoutes('auth/*');
}
}