Skip to content

Commit 0c3f7e2

Browse files
committed
Add EnsureIdentitiesIndexMiddleware and implement NestModule in IdentitiesModule
1 parent b5e82e6 commit 0c3f7e2

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { CallHandler, ExecutionContext, Injectable, NestMiddleware } from '@nestjs/common';
2+
import { InjectModel } from '@nestjs/mongoose';
3+
import { Request, Response } from 'express';
4+
import { Model } from 'mongoose';
5+
import { Identities } from '~/management/identities/_schemas/identities.schema';
6+
7+
@Injectable()
8+
export class EnsureIdentitiesIndexMiddleware implements NestMiddleware {
9+
constructor(
10+
@InjectModel(Identities.name) private readonly identityModel: Model<Identities>,
11+
) { }
12+
13+
public async use(req: Request, res: Response, next: () => void) {
14+
try {
15+
await this.identityModel.ensureIndexes();
16+
console.log('Indexes synchronized.');
17+
} catch (err) {
18+
console.error('Erreur lors de la création des index :', err);
19+
}
20+
next();
21+
}
22+
}

src/management/identities/identities.module.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { forwardRef, Module } from '@nestjs/common';
1+
import { forwardRef, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
22
import { MongooseModule } from '@nestjs/mongoose';
33
import { Identities, IdentitiesSchema } from './_schemas/identities.schema';
44
import { IdentitiesValidationService } from './validations/identities.validation.service';
@@ -18,6 +18,7 @@ import { IdentitiesPhotoController } from '~/management/identities/identities-ph
1818
import { IdentitiesActivationController } from '~/management/identities/identities-activation.controller';
1919
import { IdentitiesActivationService } from '~/management/identities/identities-activation.service';
2020
import { IdentitiesDoublonController } from '~/management/identities/identities-doublon.controller';
21+
import { EnsureIdentitiesIndexMiddleware } from './_middlewares/ensure-identities-index.middleware';
2122

2223
@Module({
2324
imports: [
@@ -53,4 +54,8 @@ import { IdentitiesDoublonController } from '~/management/identities/identities-
5354
],
5455
exports: [IdentitiesCrudService],
5556
})
56-
export class IdentitiesModule {}
57+
export class IdentitiesModule implements NestModule {
58+
public configure(consumer: MiddlewareConsumer) {
59+
consumer.apply(EnsureIdentitiesIndexMiddleware).forRoutes('/management/identities/*');
60+
}
61+
}

0 commit comments

Comments
 (0)