fix(mobile): URL changement mdp corrigée + v3.0 — multi-org, AppAuth, sécurité prod
Auth: - profile_repository.dart: /api/auth/change-password → /api/membres/auth/change-password Multi-org (Phase 3): - OrgSelectorPage, OrgSwitcherBloc, OrgSwitcherEntry - org_context_service.dart: headers X-Active-Organisation-Id + X-Active-Role Navigation: - MorePage: navigation conditionnelle par typeOrganisation - Suppression adaptive_navigation (remplacé par main_navigation_layout) Auth AppAuth: - keycloak_webview_auth_service: fixes AppAuth Android - AuthBloc: gestion REAUTH_REQUIS + premierLoginComplet Onboarding: - Nouveaux états: payment_method_page, onboarding_shared_widgets - SouscriptionStatusModel mis à jour StatutValidationSouscription Android: - build.gradle: ProGuard/R8, network_security_config - Gradle wrapper mis à jour
This commit is contained in:
@@ -240,7 +240,7 @@ class MembreRepositoryImpl implements IMembreRepository {
|
||||
@override
|
||||
Future<MembreCompletModel> activateMembre(String id) async {
|
||||
try {
|
||||
final response = await _apiClient.post('$_baseUrl/$id/activer');
|
||||
final response = await _apiClient.put('$_baseUrl/$id/activer');
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return MembreCompletModel.fromJson(response.data as Map<String, dynamic>);
|
||||
@@ -257,7 +257,7 @@ class MembreRepositoryImpl implements IMembreRepository {
|
||||
@override
|
||||
Future<MembreCompletModel> deactivateMembre(String id) async {
|
||||
try {
|
||||
final response = await _apiClient.post('$_baseUrl/$id/desactiver');
|
||||
final response = await _apiClient.put('$_baseUrl/$id/desactiver');
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return MembreCompletModel.fromJson(response.data as Map<String, dynamic>);
|
||||
@@ -339,5 +339,114 @@ class MembreRepositoryImpl implements IMembreRepository {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MembreCompletModel> resetMotDePasse(String id) async {
|
||||
try {
|
||||
final response = await _apiClient.put('$_baseUrl/$id/reinitialiser-mot-de-passe');
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return MembreCompletModel.fromJson(response.data as Map<String, dynamic>);
|
||||
} else {
|
||||
throw Exception('Erreur lors de la réinitialisation du mot de passe: ${response.statusCode}');
|
||||
}
|
||||
} on DioException {
|
||||
rethrow;
|
||||
} catch (e) {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<MembreCompletModel> affecterOrganisation(String membreId, String organisationId) async {
|
||||
try {
|
||||
final response = await _apiClient.put(
|
||||
'$_baseUrl/$membreId/affecter-organisation',
|
||||
queryParameters: {'organisationId': organisationId},
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return MembreCompletModel.fromJson(response.data as Map<String, dynamic>);
|
||||
} else {
|
||||
throw Exception('Erreur lors de l\'affectation à l\'organisation: ${response.statusCode}');
|
||||
}
|
||||
} on DioException {
|
||||
rethrow;
|
||||
} catch (e) {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
// ── Cycle de vie des adhésions ────────────────────────────────────────────
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> inviterMembre(
|
||||
String membreId,
|
||||
String organisationId, {
|
||||
String? roleOrg,
|
||||
}) async {
|
||||
final response = await _apiClient.put(
|
||||
'$_baseUrl/$membreId/inviter-organisation',
|
||||
queryParameters: {
|
||||
'organisationId': organisationId,
|
||||
if (roleOrg != null) 'roleOrg': roleOrg,
|
||||
},
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
return Map<String, dynamic>.from(response.data as Map);
|
||||
}
|
||||
throw Exception('Invitation échouée: ${response.statusCode}');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> activerAdhesion(
|
||||
String membreId,
|
||||
String organisationId, {
|
||||
String? motif,
|
||||
}) async {
|
||||
final response = await _apiClient.put(
|
||||
'$_baseUrl/$membreId/adhesion/activer',
|
||||
queryParameters: {'organisationId': organisationId},
|
||||
data: motif != null ? {'motif': motif} : <String, dynamic>{},
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
return Map<String, dynamic>.from(response.data as Map);
|
||||
}
|
||||
throw Exception('Activation échouée: ${response.statusCode}');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> suspendrAdhesion(
|
||||
String membreId,
|
||||
String organisationId, {
|
||||
String? motif,
|
||||
}) async {
|
||||
final response = await _apiClient.put(
|
||||
'$_baseUrl/$membreId/adhesion/suspendre',
|
||||
queryParameters: {'organisationId': organisationId},
|
||||
data: motif != null ? {'motif': motif} : <String, dynamic>{},
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
return Map<String, dynamic>.from(response.data as Map);
|
||||
}
|
||||
throw Exception('Suspension échouée: ${response.statusCode}');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> radierAdhesion(
|
||||
String membreId,
|
||||
String organisationId, {
|
||||
String? motif,
|
||||
}) async {
|
||||
final response = await _apiClient.put(
|
||||
'$_baseUrl/$membreId/adhesion/radier',
|
||||
queryParameters: {'organisationId': organisationId},
|
||||
data: motif != null ? {'motif': motif} : <String, dynamic>{},
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
return Map<String, dynamic>.from(response.data as Map);
|
||||
}
|
||||
throw Exception('Radiation échouée: ${response.statusCode}');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user