73 lines
2.2 KiB
Dart
73 lines
2.2 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);
|
|
}
|
|
|
|
static Future<bool> signalerTentativeRetour({
|
|
required int empruntId,
|
|
required String nomElement,
|
|
required String etatInitial,
|
|
required String etatDemande,
|
|
}) async {
|
|
final reponse = await ApiClient.post(
|
|
"/emprunts/$empruntId/alerte-changement-retour",
|
|
{
|
|
"nomElement": nomElement,
|
|
"etatInitial": etatInitial,
|
|
"etatDemande": etatDemande,
|
|
},
|
|
);
|
|
final data = Map<String, dynamic>.from(reponse["data"] as Map);
|
|
return data["alerteCreee"] as bool;
|
|
}
|
|
}
|