feat(frontend): add responsable dashboard screen

This commit is contained in:
SaidSoighiri94
2026-07-17 11:55:44 +02:00
parent 736328c66b
commit 2a1281b0e5
5 changed files with 693 additions and 20 deletions
+45 -5
View File
@@ -18,13 +18,20 @@ class ApiClient {
static const String _baseUrl = "http://localhost:3000/api";
static const String _utilisateurEmail = "lucas.martin@ensitech.eu";
static const String responsableEmail = "karim.benali@ensup.eu";
static Future<dynamic> get(String chemin) async {
static Future<dynamic> get(
String chemin, {
String utilisateurEmail = _utilisateurEmail,
}) async {
final uri = Uri.parse("$_baseUrl$chemin");
late final http.Response reponse;
try {
reponse = await http.get(uri, headers: const {"x-user-email": _utilisateurEmail});
reponse = await http.get(
uri,
headers: {"x-user-email": utilisateurEmail},
);
} catch (_) {
throw const ApiException(
"Impossible de joindre le serveur. Vérifiez que le backend est démarré.",
@@ -37,16 +44,49 @@ class ApiClient {
throw ApiException(_messageErreur(reponse));
}
static Future<dynamic> post(String chemin, Map<String, dynamic> body) async {
static Future<dynamic> post(
String chemin,
Map<String, dynamic> body, {
String utilisateurEmail = _utilisateurEmail,
}) async {
final uri = Uri.parse("$_baseUrl$chemin");
late final http.Response reponse;
try {
reponse = await http.post(
uri,
headers: const {
headers: {
"content-type": "application/json",
"x-user-email": _utilisateurEmail,
"x-user-email": utilisateurEmail,
},
body: jsonEncode(body),
);
} catch (_) {
throw const ApiException(
"Impossible de joindre le serveur. Vérifiez que le backend est démarré.",
);
}
if (reponse.statusCode >= 200 && reponse.statusCode < 300) {
return jsonDecode(reponse.body);
}
throw ApiException(_messageErreur(reponse));
}
static Future<dynamic> patch(
String chemin,
Map<String, dynamic> body, {
String utilisateurEmail = _utilisateurEmail,
}) async {
final uri = Uri.parse("$_baseUrl$chemin");
late final http.Response reponse;
try {
reponse = await http.patch(
uri,
headers: {
"content-type": "application/json",
"x-user-email": utilisateurEmail,
},
body: jsonEncode(body),
);