feature/refactor #33

Merged
v4l3n71n merged 4 commits from feature/refactor into main 2025-01-21 06:57:29 +00:00
Showing only changes of commit 06e26240ab - Show all commits

View File

@ -89,107 +89,61 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
} }
Future<void> _getEventInfos() async { Future<void> _getEventInfos() async {
SharedPreferences prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
var accessToken = prefs.getString("access_token") ?? ""; final accessToken = prefs.getString("access_token") ?? "";
String formerName = "";
String formerDate = "";
String formerMap = "";
String formerImage = "";
String formerDesc = "";
List<String> formerTags = [];
List<String> formerOrga = [];
if (accessToken.isNotEmpty) { if (accessToken.isEmpty) {
var urlGet = Uri.parse("${globals.api}/events/${widget.title}");
var responseGet = await http.get(urlGet,
headers: {HttpHeaders.cookieHeader: 'access_token=${accessToken}'});
stderr.writeln('Response Get status: ${responseGet.statusCode}');
if (responseGet.statusCode == 200) {
stderr.writeln('Username : ${responseGet.body}');
events =
Events.fromJson(jsonDecode(utf8.decode(responseGet.bodyBytes)));
id = events!.id ?? "";
formerName = events!.name ?? "";
formerMap = "${events!.place}" ?? "";
formerDesc = events!.description ?? "";
formerTags = List<String>.from(events!.tags as List);
formerOrga = List<String>.from(events!.organizers as List);
final startDate =
DateTime.parse(events!.startDate ?? DateTime.now().toString());
final date = DateFormat.yMd().format(startDate);
final time = DateFormat.Hm().format(startDate);
final endDate =
DateTime.parse(events!.endDate ?? DateTime.now().toString());
final dateE = DateFormat.yMd().format(endDate);
final timeE = DateFormat.Hm().format(endDate);
if (events!.imgUrl != null) {
formerImage = events!.imgUrl ?? "";
}
formerDate = "${date} ${time} à ${dateE} ${timeE}";
} else {
var text = "";
switch (responseGet.statusCode) {
case 400:
{
text = "Requête mal construite";
}
break;
case 406:
{
text = "Mot de passe incorrect";
}
break;
case 404:
{
text = "Utilisateur inconnu";
}
break;
case 403:
{
text = "Vous n'avez pas l'autorisation de faire cette action";
}
break;
case 410:
{
text = "Token invalide";
}
break;
case 500:
{
text = "Probleme interne du serveur";
}
break;
default:
{
text = "Probleme d'authentification inconnu";
}
break;
}
showAlertDialog(context, "Erreur serveur", text);
}
} else {
showAlertDialog(context, "Erreur serveur", "Cache invalide"); showAlertDialog(context, "Erreur serveur", "Cache invalide");
return;
} }
setState(() { final urlGet = Uri.parse("${globals.api}/events/${widget.title}");
// This call to setState tells the Flutter framework that something has final responseGet = await http.get(
// changed in this State, which causes it to rerun the build method below urlGet,
// so that the display can reflect the updated values. If we changed headers: {HttpHeaders.cookieHeader: 'access_token=$accessToken'},
// _counter without calling setState(), then the build method would not be );
// called again, and so nothing would appear to happen.
eventName = formerName; stderr.writeln('Response Get status: ${responseGet.statusCode}');
eventStartDate = formerDate;
organizers = formerOrga; if (responseGet.statusCode == 200) {
place = formerMap; final responseBody = utf8.decode(responseGet.bodyBytes);
imgUrl = formerImage; stderr.writeln('Username : $responseBody');
eventDescription = formerDesc;
tags = formerTags; final event = Events.fromJson(jsonDecode(responseBody));
});
final startDate =
DateTime.parse(event.startDate ?? DateTime.now().toString());
final endDate =
DateTime.parse(event.endDate ?? DateTime.now().toString());
final formattedStartDate =
"${DateFormat.yMd().format(startDate)} ${DateFormat.Hm().format(startDate)}";
final formattedEndDate =
"${DateFormat.yMd().format(endDate)} ${DateFormat.Hm().format(endDate)}";
setState(() {
eventName = event.name ?? "";
eventStartDate = "$formattedStartDate à $formattedEndDate";
organizers = List<String>.from(event.organizers ?? []);
place = event.place ?? "";
imgUrl = event.imgUrl ?? "";
eventDescription = event.description ?? "";
tags = List<String>.from(event.tags ?? []);
});
} else {
final errorMessages = {
400: "Requête mal construite",
406: "Mot de passe incorrect",
404: "Utilisateur inconnu",
403: "Vous n'avez pas l'autorisation de faire cette action",
410: "Token invalide",
500: "Problème interne du serveur",
};
final errorMessage = errorMessages[responseGet.statusCode] ??
"Problème d'authentification inconnu";
showAlertDialog(context, "Erreur serveur", errorMessage);
}
} }
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();