49 lines
1.7 KiB
Dart
49 lines
1.7 KiB
Dart
import "../models/emprunt_response.dart";
|
|
import "../models/emprunt_item.dart";
|
|
import "api_client.dart";
|
|
|
|
/// Appels liés aux emprunts.
|
|
class EmpruntService {
|
|
EmpruntService._();
|
|
|
|
static const int posteEmpruntId = 1;
|
|
|
|
static Future<EmpruntResponse> creerEmprunt({
|
|
required int materielId,
|
|
required String commentaireDepart,
|
|
required List<Map<String, dynamic>> elements,
|
|
}) async {
|
|
final reponse = await ApiClient.post("/emprunts", {
|
|
"materielId": materielId,
|
|
"posteEmpruntId": posteEmpruntId,
|
|
"modeIdentification": "MAIL_ENSUP",
|
|
if (commentaireDepart.trim().isNotEmpty) "commentaireDepart": commentaireDepart.trim(),
|
|
"elements": elements,
|
|
});
|
|
|
|
final data = (reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
|
|
return EmpruntResponse.fromJson(data);
|
|
}
|
|
|
|
static Future<List<EmpruntItem>> getMesEmprunts() async {
|
|
final reponse = await ApiClient.get("/mes-emprunts");
|
|
final data = (reponse as Map<String, dynamic>)["data"] as List<dynamic>;
|
|
return data.map((json) => EmpruntItem.fromJson(json as Map<String, dynamic>)).toList();
|
|
}
|
|
|
|
static Future<EmpruntResponse> restituerEmprunt({
|
|
required int empruntId,
|
|
required String commentaireRetour,
|
|
required List<Map<String, dynamic>> elements,
|
|
}) async {
|
|
final reponse = await ApiClient.post("/emprunts/$empruntId/restitution", {
|
|
"modeIdentification": "MAIL_ENSUP",
|
|
if (commentaireRetour.trim().isNotEmpty) "commentaireRetour": commentaireRetour.trim(),
|
|
"elements": elements,
|
|
});
|
|
|
|
final data = (reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
|
|
return EmpruntResponse.fromJson(data);
|
|
}
|
|
}
|