fix(#170): brancher l’API couples-garde AM et unifier le bandeau

Évite le 403 en appelant /assistantes-maternelles/me/couples-garde,
parse parents[], et affiche « Prénom1 et Prénom2 » sans vignette.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-24 16:04:34 +02:00
co-authored by Cursor
parent 4007d7010e
commit 91f2c3e1ef
5 changed files with 101 additions and 26 deletions
+5 -1
View File
@@ -67,7 +67,11 @@ class ApiConfig {
static const String parentsCoupleGardeCourant =
'/parents/me/couples-garde/courant';
static const String assistantesMaternelles = '/assistantes-maternelles';
/// Création dossier AM actif par le staff (#156) — body type register AM.
/// Couples de garde de l'AM connectée (#170 / #171).
static const String assistantesMaternellesCouplesGarde =
'/assistantes-maternelles/me/couples-garde';
static const String assistantesMaternellesCoupleGardeCourant =
'/assistantes-maternelles/me/couples-garde/courant';
static const String assistantesMaternellesDossier =
'/assistantes-maternelles/dossier';
static const String enfants = '/enfants';
@@ -73,4 +73,45 @@ class CoupleGardeService {
Map<String, dynamic>.from(decoded as Map),
);
}
/// Liste les couples de garde et le couple courant de l'AM connectée.
static Future<CouplesGardeResponse> getAmCouplesGarde() async {
final response = await http.get(
Uri.parse('${ApiConfig.baseUrl}${ApiConfig.assistantesMaternellesCouplesGarde}'),
headers: await _headers(),
);
if (response.statusCode != 200) {
throw Exception(
_extractError(response.body, 'Erreur chargement des couples de garde (AM)'),
);
}
final decoded = jsonDecode(response.body);
return CouplesGardeResponse.fromJson(
Map<String, dynamic>.from(decoded as Map),
);
}
/// Persiste le couple courant (AM) et renvoie la liste à jour.
static Future<CouplesGardeResponse> definirAmCoupleCourant(
String coupleId,
) async {
final response = await http.put(
Uri.parse('${ApiConfig.baseUrl}${ApiConfig.assistantesMaternellesCoupleGardeCourant}'),
headers: await _headers(),
body: jsonEncode({'couple_id': coupleId}),
);
if (response.statusCode != 200) {
throw Exception(
_extractError(response.body, 'Erreur sélection du couple de garde (AM)'),
);
}
final decoded = jsonDecode(response.body);
return CouplesGardeResponse.fromJson(
Map<String, dynamic>.from(decoded as Map),
);
}
}