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

@@ -6,6 +6,8 @@ import 'package:dio/dio.dart';
import 'package:injectable/injectable.dart';
import 'membres_event.dart';
import 'membres_state.dart';
import '../../../shared/models/membre_search_criteria.dart';
import '../../../shared/models/membre_search_result.dart';
import '../domain/usecases/get_members.dart';
import '../domain/usecases/get_member_by_id.dart';
import '../domain/usecases/create_member.dart' as uc;
@@ -64,11 +66,25 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(const MembresLoading());
}
final result = await _getMembers(
page: event.page,
size: event.size,
recherche: event.recherche,
);
final MembreSearchResult result;
if (event.organisationId != null) {
// OrgAdmin : scope la requête à son organisation via la recherche avancée
result = await _searchMembers(
criteria: MembreSearchCriteria(
organisationIds: [event.organisationId!],
query: event.recherche?.isNotEmpty == true ? event.recherche : null,
),
page: event.page,
size: event.size,
);
} else {
// SuperAdmin et autres rôles : accès global sans filtre org
result = await _getMembers(
page: event.page,
size: event.size,
recherche: event.recherche,
);
}
emit(MembresLoaded(
membres: result.membres,
@@ -76,16 +92,19 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
currentPage: result.currentPage,
pageSize: result.pageSize,
totalPages: result.totalPages,
organisationId: event.organisationId,
));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur inattendue lors du chargement des membres: $e',
message: 'Erreur lors du chargement des membres. Veuillez réessayer.',
error: e,
));
}
@@ -110,14 +129,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
));
}
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors du chargement du membre: $e',
message: 'Erreur lors du chargement du membre. Veuillez réessayer.',
error: e,
));
}
@@ -135,6 +156,7 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembreCreated(membre));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
if (e.response?.statusCode == 400) {
// Erreur de validation
final errors = _extractValidationErrors(e.response?.data);
@@ -151,8 +173,9 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
));
}
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de la création du membre: $e',
message: 'Erreur lors de la création du membre. Veuillez réessayer.',
error: e,
));
}
@@ -170,6 +193,7 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembreUpdated(membre));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
if (e.response?.statusCode == 400) {
final errors = _extractValidationErrors(e.response?.data);
emit(MembresValidationError(
@@ -185,8 +209,9 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
));
}
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de la mise à jour du membre: $e',
message: 'Erreur lors de la mise à jour du membre. Veuillez réessayer.',
error: e,
));
}
@@ -204,14 +229,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembreDeleted(event.id));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de la suppression du membre: $e',
message: 'Erreur lors de la suppression du membre. Veuillez réessayer.',
error: e,
));
}
@@ -229,14 +256,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembreActivated(membre));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de l\'activation du membre: $e',
message: 'Erreur lors de l\'activation du membre. Veuillez réessayer.',
error: e,
));
}
@@ -254,14 +283,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembreDeactivated(membre));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de la désactivation du membre: $e',
message: 'Erreur lors de la désactivation du membre. Veuillez réessayer.',
error: e,
));
}
@@ -289,14 +320,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
totalPages: result.totalPages,
));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors de la recherche de membres: $e',
message: 'Erreur lors de la recherche de membres. Veuillez réessayer.',
error: e,
));
}
@@ -323,14 +356,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
totalPages: result.totalPages,
));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors du chargement des membres actifs: $e',
message: 'Erreur lors du chargement des membres actifs. Veuillez réessayer.',
error: e,
));
}
@@ -357,14 +392,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
totalPages: result.totalPages,
));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors du chargement des membres du bureau: $e',
message: 'Erreur lors du chargement des membres du bureau. Veuillez réessayer.',
error: e,
));
}
@@ -382,14 +419,16 @@ class MembresBloc extends Bloc<MembresEvent, MembresState> {
emit(MembresStatsLoaded(stats));
} on DioException catch (e) {
if (e.type == DioExceptionType.cancel) return;
emit(MembresNetworkError(
message: _getNetworkErrorMessage(e),
code: e.response?.statusCode.toString(),
error: e,
));
} catch (e) {
if (e is DioException && e.type == DioExceptionType.cancel) return;
emit(MembresError(
message: 'Erreur lors du chargement des statistiques: $e',
message: 'Erreur lors du chargement des statistiques. Veuillez réessayer.',
error: e,
));
}