Skip to content

Commit 329771e

Browse files
committed
feat: Add detailed JSDoc comments to CoreController, CoreModule, and CoreService for improved documentation
1 parent 3eb1622 commit 329771e

File tree

3 files changed

+108
-21
lines changed

3 files changed

+108
-21
lines changed
Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,36 @@
1-
import { Controller } from '@nestjs/common';
2-
import { CoreService } from './core.service';
3-
import { ApiTags } from '@nestjs/swagger';
1+
import { Controller } from '@nestjs/common'
2+
import { CoreService } from './core.service'
3+
import { ApiTags } from '@nestjs/swagger'
44

5+
/**
6+
* Contrôleur principal du module Core.
7+
*
8+
* Ce contrôleur sert de point d'entrée pour les endpoints API du module Core.
9+
* Le module Core regroupe les fonctionnalités essentielles du système telles que
10+
* la gestion des agents, des audits, de l'authentification, des backends, etc.
11+
*
12+
* @class CoreController
13+
*
14+
* @description
15+
* Le contrôleur Core peut exposer des endpoints globaux ou transversaux qui ne
16+
* relèvent pas d'un sous-module spécifique. Les fonctionnalités métier sont
17+
* généralement déléguées aux sous-contrôleurs spécialisés :
18+
* - AgentsController : Gestion des agents
19+
* - AuditsController : Consultation des audits
20+
* - AuthController : Authentification et autorisation
21+
* - BackendsController : Gestion des backends
22+
* - etc.
23+
*
24+
* Ce contrôleur reste disponible pour des opérations générales au niveau du module Core
25+
* ou pour servir de facade à des fonctionnalités transversales.
26+
*/
527
@ApiTags('core')
628
@Controller('core')
729
export class CoreController {
8-
public constructor(private readonly _service: CoreService) {}
30+
/**
31+
* Constructeur du contrôleur CoreController.
32+
*
33+
* @param {CoreService} _service - Le service Core pour la logique métier
34+
*/
35+
public constructor(private readonly _service: CoreService) { }
936
}

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

Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,45 @@
1-
import { DynamicModule, Module } from '@nestjs/common';
2-
import { RouterModule } from '@nestjs/core';
3-
import { AgentsModule } from './agents/agents.module';
4-
import { AuthModule } from './auth/auth.module';
5-
import { BackendsModule } from './backends/backends.module';
6-
import { CoreController } from './core.controller';
7-
import { CoreService } from './core.service';
8-
import { JobsModule } from './jobs/jobs.module';
9-
import { KeyringsModule } from './keyrings/keyrings.module';
10-
import { LoggerModule } from './logger/logger.module';
11-
import { TasksModule } from './tasks/tasks.module';
12-
import { FilestorageModule } from './filestorage/filestorage.module';
13-
import { AuditsModule } from './audits/audits.module';
14-
import { HealthModule } from './health/health.module';
1+
import { DynamicModule, Module } from '@nestjs/common'
2+
import { RouterModule } from '@nestjs/core'
3+
import { AgentsModule } from './agents/agents.module'
4+
import { AuthModule } from './auth/auth.module'
5+
import { BackendsModule } from './backends/backends.module'
6+
import { CoreController } from './core.controller'
7+
import { CoreService } from './core.service'
8+
import { JobsModule } from './jobs/jobs.module'
9+
import { KeyringsModule } from './keyrings/keyrings.module'
10+
import { LoggerModule } from './logger/logger.module'
11+
import { TasksModule } from './tasks/tasks.module'
12+
import { FilestorageModule } from './filestorage/filestorage.module'
13+
import { AuditsModule } from './audits/audits.module'
14+
import { HealthModule } from './health/health.module'
1515

16+
/**
17+
* Module Core - Fonctionnalités essentielles du système.
18+
*
19+
* Ce module regroupe tous les sous-modules et fonctionnalités de base nécessaires
20+
* au fonctionnement de l'orchestrateur Sesame. Il agit comme un hub central qui
21+
* organise et expose les API des différents composants du système.
22+
*
23+
* @module CoreModule
24+
*
25+
* @description
26+
* Sous-modules intégrés :
27+
* - **AuthModule** : Authentification et autorisation des agents
28+
* - **AgentsModule** : Gestion des agents (utilisateurs/systèmes)
29+
* - **AuditsModule** : Système d'audit et d'historique des modifications
30+
* - **BackendsModule** : Gestion des backends de connexion
31+
* - **LoggerModule** : Système de logging centralisé
32+
* - **KeyringsModule** : Gestion des clés cryptographiques
33+
* - **JobsModule** : Gestion des tâches asynchrones et files d'attente
34+
* - **TasksModule** : Gestion des tâches planifiées
35+
* - **FilestorageModule** : Stockage et gestion de fichiers
36+
* - **HealthModule** : Vérification de l'état de santé du système
37+
*
38+
* Architecture :
39+
* - Tous les sous-modules sont automatiquement préfixés avec '/core' dans les routes
40+
* - Utilise le RouterModule pour organiser la hiérarchie des routes
41+
* - Expose un service CoreService pour la logique transversale
42+
*/
1643
@Module({
1744
imports: [
1845
AuthModule,
@@ -30,6 +57,21 @@ import { HealthModule } from './health/health.module';
3057
controllers: [CoreController],
3158
})
3259
export class CoreModule {
60+
/**
61+
* Enregistre le module Core en mode dynamique avec le routage configuré.
62+
*
63+
* Cette méthode configure automatiquement le préfixe '/core' pour tous les
64+
* sous-modules importés, créant une hiérarchie de routes cohérente.
65+
*
66+
* @static
67+
* @returns {DynamicModule} Le module configuré avec le RouterModule
68+
*
69+
* @description
70+
* La méthode utilise les métadonnées de réflexion pour récupérer dynamiquement
71+
* tous les modules importés et les enregistrer comme enfants de la route '/core'.
72+
* Cela permet d'ajouter ou retirer des sous-modules sans modifier la configuration
73+
* de routage manuellement.
74+
*/
3375
public static register(): DynamicModule {
3476
return {
3577
module: this,

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
1-
import { Injectable } from '@nestjs/common';
1+
import { Injectable } from '@nestjs/common'
2+
import { AbstractService } from '~/_common/abstracts/abstract.service'
23

4+
/**
5+
* Service principal du module Core.
6+
*
7+
* Ce service fournit la logique métier transversale pour le module Core.
8+
* Il peut contenir des fonctionnalités communes à plusieurs sous-modules
9+
* ou des opérations qui nécessitent la coordination de plusieurs services.
10+
*
11+
* @class CoreService
12+
* @extends {AbstractService}
13+
*/
314
@Injectable()
4-
export class CoreService {
5-
public constructor() {}
15+
export class CoreService extends AbstractService {
16+
/**
17+
* Constructeur du service CoreService.
18+
*
19+
* @constructor
20+
*/
21+
public constructor() {
22+
super()
23+
}
624
}

0 commit comments

Comments
 (0)