- Frontend:
- Create UserService to handle user-related API calls (gestionnaires, parents, AMs, admins)
- Update AdminDashboardScreen to use dynamic widgets
- Implement dynamic management widgets:
- GestionnaireManagementWidget
- ParentManagementWidget
- AssistanteMaternelleManagementWidget
- AdminManagementWidget
- Add data models: ParentModel, AssistanteMaternelleModel
- Update AppUser model
- Update ApiConfig
- Backend:
- Update controllers (Parents, AMs, Gestionnaires, Users) to allow ADMINISTRATEUR role to list users
- Fix: Activate endpoint GET /gestionnaires (import GestionnairesModule in UserModule)
- Docs:
- Add note about backend fix for Gestionnaires module
- Update .cursorrules to forbid worktrees
- Seed:
- Add test data seed script (reset-and-seed-db.sh)
Co-authored-by: Cursor <cursoragent@cursor.com>
64 lines
2.1 KiB
Markdown
64 lines
2.1 KiB
Markdown
# 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.
|
|
|
|
```typescript
|
|
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`.
|
|
|
|
```typescript
|
|
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é :
|
|
```dart
|
|
static Future<List<AppUser>> getGestionnaires() async {
|
|
final response = await http.get(
|
|
Uri.parse('${ApiConfig.baseUrl}${ApiConfig.gestionnaires}'),
|
|
headers: await _headers(),
|
|
);
|
|
// ...
|
|
}
|
|
```
|