159 lines
5.6 KiB
Markdown
159 lines
5.6 KiB
Markdown
# 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
|
|
|