Skip to content

Commit 8e3f91b

Browse files
committed
feat: Enhance AgentsService and AuditsModule with detailed JSDoc comments for improved documentation
1 parent 32e934e commit 8e3f91b

File tree

3 files changed

+77
-26
lines changed

3 files changed

+77
-26
lines changed

apps/api/src/core/agents/agents.service.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -101,23 +101,15 @@ export class AgentsService extends AbstractServiceSchema {
101101
update: UpdateQuery<T> & any,
102102
options?: QueryOptions<T>,
103103
): Promise<ModifyResult<Query<T, T, any, T>>> {
104-
if (update.password) {
105-
update.password = await hash(update.password)
106-
}
104+
// Hachage du mot de passe si présent
105+
if (update.password) update.password = await hash(update.password)
106+
if (update.$set?.password) update.$set.password = await hash(update.$set.password)
107107

108-
if (update.$set?.password) {
109-
update.$set.password = await hash(update.$set.password)
108+
// Log si le mot de passe est mis à jour
109+
if (update.password || update.$set?.password) {
110+
this.logger.verbose(`Updating password for agent with ID: ${_id}`)
110111
}
111112

112-
return await super.update(
113-
_id,
114-
{
115-
...update,
116-
$set: {
117-
...(update?.$set || {}),
118-
},
119-
},
120-
options,
121-
)
113+
return await super.update(_id, update, options)
122114
}
123115
}

apps/api/src/core/audits/audits.module.ts

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,42 @@
1-
import { Module } from '@nestjs/common';
2-
import { MongooseModule } from '@nestjs/mongoose';
3-
import { AuditsSchema, Audits } from '~/core/audits/_schemas/audits.schema';
4-
import { AuditsService } from './audits.service';
5-
import { AuditsController } from './audits.controller';
1+
import { Module } from '@nestjs/common'
2+
import { MongooseModule } from '@nestjs/mongoose'
3+
import { AuditsSchema, Audits } from '~/core/audits/_schemas/audits.schema'
4+
import { AuditsService } from './audits.service'
5+
import { AuditsController } from './audits.controller'
66

7+
/**
8+
* Module de gestion des audits et de l'historique des enregistrements.
9+
*
10+
* Ce module fournit un système de logging en base de données où l'enregistrement
11+
* automatique de l'historique des modifications est géré par un plugin Mongoose.
12+
* Le module expose des fonctionnalités pour lister, restaurer et supprimer les
13+
* entrées d'audit capturées automatiquement.
14+
*
15+
* @module AuditsModule
16+
*
17+
* @description
18+
* Architecture du système :
19+
* - **Plugin Mongoose** : Intercepte automatiquement toutes les opérations de base de données
20+
* (création, mise à jour, suppression) et enregistre les traces d'audit avec l'état
21+
* complet avant/après modification
22+
* - **Service AuditsService** : Permet de lister, restaurer et supprimer les entrées d'audit
23+
* - **Contrôleur AuditsController** : Expose les endpoints API REST pour consulter l'historique
24+
* et effectuer des opérations de restauration
25+
*
26+
* Fonctionnalités principales :
27+
* - Enregistrement automatique de l'historique via plugin Mongoose (transparent)
28+
* - Consultation de l'historique complet des modifications d'un enregistrement
29+
* - Restauration (rollback) d'une version antérieure d'un enregistrement
30+
* - Suppression d'entrées d'audit obsolètes ou non nécessaires
31+
* - Traçabilité complète des actions effectuées avec métadonnées
32+
*
33+
* Le module configure :
34+
* - La connexion à la base de données MongoDB via Mongoose pour le modèle Audits
35+
* - Le service AuditsService pour les opérations de consultation, restauration et suppression
36+
* - Le contrôleur AuditsController pour les endpoints API REST
37+
*
38+
* @exports AuditsService - Expose le service pour être utilisé par d'autres modules
39+
*/
740
@Module({
841
imports: [
942
MongooseModule.forFeatureAsync([
Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,38 @@
1-
import { Injectable } from '@nestjs/common';
2-
import { InjectModel } from '@nestjs/mongoose';
3-
import { Audits } from '~/core/audits/_schemas/audits.schema';
4-
import { Model } from 'mongoose';
5-
import { AbstractServiceSchema } from '~/_common/abstracts/abstract.service.schema';
1+
import { Injectable } from '@nestjs/common'
2+
import { InjectModel } from '@nestjs/mongoose'
3+
import { Audits } from '~/core/audits/_schemas/audits.schema'
4+
import { Model } from 'mongoose'
5+
import { AbstractServiceSchema } from '~/_common/abstracts/abstract.service.schema'
66

7+
/**
8+
* Service de gestion des audits et de l'historique des enregistrements.
9+
*
10+
* Ce service permet de consulter, restaurer et supprimer les entrées d'audit
11+
* qui sont automatiquement enregistrées en base de données par un plugin Mongoose.
12+
* Le plugin capture automatiquement toutes les modifications (création, mise à jour,
13+
* suppression) et enregistre l'état complet avant/après modification.
14+
*
15+
* @class AuditsService
16+
* @extends {AbstractServiceSchema}
17+
*
18+
* @description
19+
* Fonctionnalités du service :
20+
* - **Lister** : Consulter l'historique complet des modifications d'un enregistrement
21+
* - **Restaurer** : Effectuer un rollback en restaurant une version antérieure d'un enregistrement
22+
* - **Supprimer** : Nettoyer les entrées d'audit obsolètes ou non nécessaires
23+
*
24+
* Note : L'enregistrement automatique des audits est géré par un plugin Mongoose
25+
* qui intercepte les opérations de base de données et crée les traces d'audit
26+
* de manière transparente.
27+
*/
728
@Injectable()
829
export class AuditsService extends AbstractServiceSchema {
30+
/**
31+
* Constructeur du service AuditsService.
32+
*
33+
* @param {Model<Audits>} _model - Le modèle Mongoose pour la collection des audits
34+
*/
935
constructor(@InjectModel(Audits.name) protected _model: Model<Audits>) {
10-
super();
36+
super()
1137
}
1238
}

0 commit comments

Comments
 (0)