Refactoring - Version OK
This commit is contained in:
158
MIGRATION_UUID_CLIENT.md
Normal file
158
MIGRATION_UUID_CLIENT.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# Guide de Migration UUID - Code Client
|
||||
|
||||
## Vue d'ensemble
|
||||
|
||||
Ce document décrit les changements nécessaires dans le code client (`unionflow-client-quarkus-primefaces-freya`) pour utiliser UUID au lieu de Long.
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
### Services Client (Interfaces REST)
|
||||
|
||||
#### MembreService.java
|
||||
- ✅ `obtenirParId(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `modifier(@PathParam("id") UUID id, ...)` - Changé de Long vers UUID
|
||||
- ✅ `supprimer(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `activer(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `desactiver(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `suspendre(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `radier(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `listerParAssociation(@PathParam("associationId") UUID associationId)` - Changé de Long vers UUID
|
||||
- ✅ `rechercher(..., @QueryParam("associationId") UUID associationId, ...)` - Changé de Long vers UUID
|
||||
- ✅ `exporterExcel(..., @QueryParam("associationId") UUID associationId, ...)` - Changé de Long vers UUID
|
||||
- ✅ `importerDonnees(..., @FormParam("associationId") UUID associationId)` - Changé de Long vers UUID
|
||||
|
||||
#### AssociationService.java
|
||||
- ✅ `obtenirParId(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `modifier(@PathParam("id") UUID id, ...)` - Changé de Long vers UUID
|
||||
- ✅ `supprimer(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `activer(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `desactiver(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `suspendre(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `dissoudre(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `compterMembres(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `obtenirPerformance(@PathParam("id") UUID id)` - Changé de Long vers UUID
|
||||
- ✅ `PerformanceAssociationDTO.associationId` - Changé de Long vers UUID
|
||||
|
||||
### DTOs Client
|
||||
|
||||
#### MembreDTO.java
|
||||
- ✅ `private UUID id;` - Changé de Long vers UUID
|
||||
- ✅ `private UUID associationId;` - Changé de Long vers UUID
|
||||
- ✅ Getters et setters mis à jour
|
||||
|
||||
#### AssociationDTO.java
|
||||
- ✅ `private UUID id;` - Changé de Long vers UUID
|
||||
- ✅ Getters et setters mis à jour
|
||||
|
||||
## Fichiers à mettre à jour (Beans JSF)
|
||||
|
||||
Les Beans JSF suivants utilisent encore `Long` et doivent être mis à jour :
|
||||
|
||||
### Beans avec IDs Long dans les classes internes
|
||||
1. **UserSession.java**
|
||||
- `UserInfo.id` : Long → UUID
|
||||
- `EntiteInfo.id` : Long → UUID
|
||||
|
||||
2. **DemandesBean.java**
|
||||
- `DemandeItem.id` : Long → UUID
|
||||
- `Gestionnaire.id` : Long → UUID
|
||||
|
||||
3. **UtilisateursBean.java**
|
||||
- `UtilisateurItem.id` : Long → UUID
|
||||
- `OrganisationItem.id` : Long → UUID
|
||||
- Remplacer `setId(1L)`, `setId(2L)`, etc. par `UUID.randomUUID()`
|
||||
|
||||
4. **SuperAdminBean.java**
|
||||
- `AlerteItem.id` : Long → UUID
|
||||
- Remplacer `setId(1L)`, `setId(2L)`, etc. par `UUID.randomUUID()`
|
||||
|
||||
5. **MembreRechercheBean.java**
|
||||
- `RechercheItem.id` : Long → UUID
|
||||
- `MembreItem.id` : Long → UUID
|
||||
- Remplacer `setId(1L)`, `setId(2L)` par `UUID.randomUUID()`
|
||||
|
||||
6. **MembreProfilBean.java**
|
||||
- `ActiviteItem.id` : Long → UUID
|
||||
|
||||
7. **EvenementsBean.java**
|
||||
- `EvenementItem.id` : Long → UUID
|
||||
|
||||
8. **EntitesGestionBean.java**
|
||||
- `EntiteItem.id` : Long → UUID
|
||||
|
||||
9. **DocumentsBean.java**
|
||||
- `DocumentItem.id` : Long → UUID
|
||||
- `CategorieItem.id` : Long → UUID
|
||||
|
||||
10. **DemandesAideBean.java**
|
||||
- `DemandeItem.id` : Long → UUID
|
||||
|
||||
11. **CotisationsGestionBean.java**
|
||||
- `CotisationItem.id` : Long → UUID
|
||||
- `MembreItem.id` : Long → UUID
|
||||
|
||||
12. **CotisationsBean.java**
|
||||
- `CotisationItem.id` : Long → UUID
|
||||
|
||||
13. **RapportsBean.java**
|
||||
- `RapportItem.id` : Long → UUID
|
||||
|
||||
### Beans avec données mockées
|
||||
- **SouscriptionBean.java** : `souscriptionActive.setId(1L)` → `UUID.randomUUID()`
|
||||
- **FormulaireBean.java** : `starter.setId(1L)`, etc. → `UUID.randomUUID()`
|
||||
- **AdminFormulaireBean.java** : `starter.setId(1L)`, etc. → `UUID.randomUUID()`
|
||||
- **AuthenticationService.java** : Tous les `setId(1L)`, `setId(2L)`, etc. → `UUID.randomUUID()`
|
||||
|
||||
## DTOs supplémentaires à vérifier
|
||||
|
||||
- **SouscriptionDTO.java** : `private Long id;` → `private UUID id;`
|
||||
- **FormulaireDTO.java** : `private Long id;` → `private UUID id;`
|
||||
- **LoginResponse.java** : `UserInfo.id` et `EntiteInfo.id` → UUID
|
||||
|
||||
## Notes importantes
|
||||
|
||||
1. **Conversion automatique** : JAX-RS/MicroProfile REST Client convertit automatiquement les UUID en String dans les URLs
|
||||
2. **Validation** : Les UUIDs sont validés automatiquement par JAX-RS
|
||||
3. **Null safety** : Vérifier que les UUIDs ne sont pas null avant utilisation
|
||||
4. **Tests** : Mettre à jour tous les tests qui utilisent des IDs Long
|
||||
|
||||
## Exemple de migration
|
||||
|
||||
### Avant
|
||||
```java
|
||||
@GET
|
||||
@Path("/{id}")
|
||||
MembreDTO obtenirParId(@PathParam("id") Long id);
|
||||
|
||||
// Dans un Bean
|
||||
membreService.obtenirParId(1L);
|
||||
```
|
||||
|
||||
### Après
|
||||
```java
|
||||
@GET
|
||||
@Path("/{id}")
|
||||
MembreDTO obtenirParId(@PathParam("id") UUID id);
|
||||
|
||||
// Dans un Bean
|
||||
UUID membreId = UUID.fromString("550e8400-e29b-41d4-a716-446655440000");
|
||||
membreService.obtenirParId(membreId);
|
||||
```
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
1. ✅ Mettre à jour les services client (MembreService, AssociationService)
|
||||
2. ✅ Mettre à jour les DTOs principaux (MembreDTO, AssociationDTO)
|
||||
3. ⏳ Mettre à jour tous les Beans JSF
|
||||
4. ⏳ Mettre à jour les DTOs restants
|
||||
5. ⏳ Mettre à jour les données mockées dans AuthenticationService
|
||||
6. ⏳ Tester l'application complète
|
||||
|
||||
## Support
|
||||
|
||||
Pour toute question concernant cette migration, contactez l'équipe UnionFlow.
|
||||
|
||||
**Date de migration:** 16 janvier 2025
|
||||
**Version:** 2.0
|
||||
**Auteur:** UnionFlow Team
|
||||
|
||||
Reference in New Issue
Block a user