petitspas/docs/92_NOTE-BACKEND-GESTIONNAIRES.md
Julien Martin c4d93ee458 Merge develop into master (squash)
- Ticket #92: endpoint GET /gestionnaires, dashboard admin données réelles
- Seed données de test, script reset-and-seed-db.sh
- Modèles frontend (Parent, AM), user_service, widgets admin

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 22:55:38 +01:00

2.1 KiB

Note Backend - Activation du module Gestionnaires (Ticket #92)

Problème

L'endpoint GET /api/v1/gestionnaires renvoie une erreur 404 Not Found. Cela est dû au fait que le GestionnairesModule n'est pas importé dans l'arbre des modules de l'application (via UserModule ou AppModule).

Solution de contournement actuelle (Frontend)

Le frontend utilise actuellement l'endpoint générique /api/v1/users et filtre les résultats côté client pour ne garder que les utilisateurs ayant le rôle gestionnaire. Fichier concerné : frontend/lib/services/user_service.dart

Correctif Backend à appliquer

Pour activer proprement l'endpoint dédié, il faut effectuer les modifications suivantes dans le backend :

1. Importer le module dans UserModule

Fichier : backend/src/routes/user/user.module.ts

Ajouter GestionnairesModule dans les imports.

import { GestionnairesModule } from './gestionnaires/gestionnaires.module';

@Module({
  imports: [
    // ... autres imports
    GestionnairesModule, // <--- AJOUTER ICI
  ],
  // ...
})
export class UserModule { }

2. Ajouter AuthModule dans GestionnairesModule

Fichier : backend/src/routes/user/gestionnaires/gestionnaires.module.ts

Le contrôleur utilise AuthGuard, qui dépend de JwtService fourni par AuthModule.

import { AuthModule } from 'src/routes/auth/auth.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([Users]), 
    AuthModule // <--- AJOUTER ICI
  ],
  controllers: [GestionnairesController],
  providers: [GestionnairesService],
})
export class GestionnairesModule { }

Après application du correctif

Une fois ces modifications backend effectuées :

  1. Redémarrer le serveur backend.
  2. Modifier le frontend (frontend/lib/services/user_service.dart) pour utiliser à nouveau l'endpoint dédié :
    static Future<List<AppUser>> getGestionnaires() async {
      final response = await http.get(
        Uri.parse('${ApiConfig.baseUrl}${ApiConfig.gestionnaires}'),
        headers: await _headers(),
      );
      // ...
    }