refactoring

This commit is contained in:
dahoud
2026-03-31 09:14:47 +00:00
parent 9bfffeeebe
commit 5383df6dcb
200 changed files with 11192 additions and 7063 deletions

View File

@@ -174,6 +174,10 @@ class MembreCompletModel extends Equatable {
@JsonKey(name: 'dateVerificationIdentite')
final DateTime? dateVerificationIdentite;
/// Mot de passe temporaire (retourné une seule fois à la création, null sinon)
@JsonKey(name: 'motDePasseTemporaire')
final String? motDePasseTemporaire;
const MembreCompletModel({
this.id,
required this.nom,
@@ -210,6 +214,7 @@ class MembreCompletModel extends Equatable {
this.niveauVigilanceKyc,
this.statutKyc,
this.dateVerificationIdentite,
this.motDePasseTemporaire,
});
/// Création depuis JSON
@@ -256,6 +261,7 @@ class MembreCompletModel extends Equatable {
NiveauVigilanceKyc? niveauVigilanceKyc,
StatutKyc? statutKyc,
DateTime? dateVerificationIdentite,
String? motDePasseTemporaire,
}) {
return MembreCompletModel(
id: id ?? this.id,
@@ -293,6 +299,7 @@ class MembreCompletModel extends Equatable {
niveauVigilanceKyc: niveauVigilanceKyc ?? this.niveauVigilanceKyc,
statutKyc: statutKyc ?? this.statutKyc,
dateVerificationIdentite: dateVerificationIdentite ?? this.dateVerificationIdentite,
motDePasseTemporaire: motDePasseTemporaire ?? this.motDePasseTemporaire,
);
}

View File

@@ -60,6 +60,7 @@ MembreCompletModel _$MembreCompletModelFromJson(Map<String, dynamic> json) =>
dateVerificationIdentite: json['dateVerificationIdentite'] == null
? null
: DateTime.parse(json['dateVerificationIdentite'] as String),
motDePasseTemporaire: json['motDePasseTemporaire'] as String?,
);
Map<String, dynamic> _$MembreCompletModelToJson(MembreCompletModel instance) =>
@@ -101,6 +102,7 @@ Map<String, dynamic> _$MembreCompletModelToJson(MembreCompletModel instance) =>
'statutKyc': _$StatutKycEnumMap[instance.statutKyc],
'dateVerificationIdentite':
instance.dateVerificationIdentite?.toIso8601String(),
'motDePasseTemporaire': instance.motDePasseTemporaire,
};
const _$GenreEnumMap = {

View File

@@ -49,10 +49,10 @@ class MembreRepositoryImpl implements IMembreRepository {
);
return _parseMembreSearchResult(response, page, size, const MembreSearchCriteria());
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la récupération des membres: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la récupération des membres: $e');
rethrow;
}
}
@@ -64,12 +64,29 @@ class MembreRepositoryImpl implements IMembreRepository {
if (map.containsKey('organisationId') && map['organisationId'] != null && map['organisationId'] is! String) {
map['organisationId'] = map['organisationId'].toString();
}
// Mapping statutCompte → statut avec normalisation des valeurs backend
if (map.containsKey('statutCompte') && !map.containsKey('statut')) {
map['statut'] = map['statutCompte'];
final sc = (map['statutCompte'] as String? ?? '').toUpperCase();
if (sc == 'ACTIF') {
map['statut'] = 'ACTIF';
} else if (sc == 'INACTIF') {
map['statut'] = 'INACTIF';
} else if (sc == 'SUSPENDU') {
map['statut'] = 'SUSPENDU';
} else {
map['statut'] = 'EN_ATTENTE';
}
}
if (map.containsKey('photoUrl') && !map.containsKey('photo')) {
map['photo'] = map['photoUrl'];
}
// roles (List) → role (premier rôle)
if (map.containsKey('roles') && !map.containsKey('role')) {
final roles = map['roles'];
if (roles is List && roles.isNotEmpty) {
map['role'] = roles.first?.toString();
}
}
if (map['id'] != null && map['id'] is! String) {
map['id'] = map['id'].toString();
}
@@ -155,12 +172,13 @@ class MembreRepositoryImpl implements IMembreRepository {
throw Exception('Erreur lors de la récupération du membre: ${response.statusCode}');
}
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) rethrow;
if (e.response?.statusCode == 404) {
return null;
}
throw Exception('Erreur réseau lors de la récupération du membre: ${e.message}');
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la récupération du membre: $e');
rethrow;
}
}
@@ -177,10 +195,10 @@ class MembreRepositoryImpl implements IMembreRepository {
} else {
throw Exception('Erreur lors de la création du membre: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la création du membre: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la création du membre: $e');
rethrow;
}
}
@@ -197,10 +215,10 @@ class MembreRepositoryImpl implements IMembreRepository {
} else {
throw Exception('Erreur lors de la mise à jour du membre: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la mise à jour du membre: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la mise à jour du membre: $e');
rethrow;
}
}
@@ -212,10 +230,10 @@ class MembreRepositoryImpl implements IMembreRepository {
if (response.statusCode != 204 && response.statusCode != 200) {
throw Exception('Erreur lors de la suppression du membre: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la suppression du membre: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la suppression du membre: $e');
rethrow;
}
}
@@ -229,10 +247,10 @@ class MembreRepositoryImpl implements IMembreRepository {
} else {
throw Exception('Erreur lors de l\'activation du membre: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de l\'activation du membre: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de l\'activation du membre: $e');
rethrow;
}
}
@@ -246,10 +264,10 @@ class MembreRepositoryImpl implements IMembreRepository {
} else {
throw Exception('Erreur lors de la désactivation du membre: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la désactivation du membre: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la désactivation du membre: $e');
rethrow;
}
}
@@ -272,10 +290,10 @@ class MembreRepositoryImpl implements IMembreRepository {
);
return _parseMembreSearchResult(response, page, size, criteria);
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la recherche de membres: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la recherche de membres: $e');
rethrow;
}
}
@@ -315,10 +333,10 @@ class MembreRepositoryImpl implements IMembreRepository {
} else {
throw Exception('Erreur lors de la récupération des statistiques: ${response.statusCode}');
}
} on DioException catch (e) {
throw Exception('Erreur réseau lors de la récupération des statistiques: ${e.message}');
} on DioException {
rethrow;
} catch (e) {
throw Exception('Erreur inattendue lors de la récupération des statistiques: $e');
rethrow;
}
}
}