diff --git a/covas_mobile/lib/pages/ItemMenu.dart b/covas_mobile/lib/pages/ItemMenu.dart index 381313f..3e40bb4 100644 --- a/covas_mobile/lib/pages/ItemMenu.dart +++ b/covas_mobile/lib/pages/ItemMenu.dart @@ -89,107 +89,61 @@ class _ItemMenuState extends State with ShowAlertDialog { } Future _getEventInfos() async { - SharedPreferences prefs = await SharedPreferences.getInstance(); - var accessToken = prefs.getString("access_token") ?? ""; - String formerName = ""; - String formerDate = ""; - String formerMap = ""; - String formerImage = ""; - String formerDesc = ""; - List formerTags = []; - List formerOrga = []; + final prefs = await SharedPreferences.getInstance(); + final accessToken = prefs.getString("access_token") ?? ""; - if (accessToken.isNotEmpty) { - 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.from(events!.tags as List); - formerOrga = List.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 { + if (accessToken.isEmpty) { showAlertDialog(context, "Erreur serveur", "Cache invalide"); + return; } - setState(() { - // This call to setState tells the Flutter framework that something has - // changed in this State, which causes it to rerun the build method below - // so that the display can reflect the updated values. If we changed - // _counter without calling setState(), then the build method would not be - // called again, and so nothing would appear to happen. - eventName = formerName; - eventStartDate = formerDate; - organizers = formerOrga; - place = formerMap; - imgUrl = formerImage; - eventDescription = formerDesc; - tags = formerTags; - }); + final urlGet = Uri.parse("${globals.api}/events/${widget.title}"); + final responseGet = await http.get( + urlGet, + headers: {HttpHeaders.cookieHeader: 'access_token=$accessToken'}, + ); + + stderr.writeln('Response Get status: ${responseGet.statusCode}'); + + if (responseGet.statusCode == 200) { + final responseBody = utf8.decode(responseGet.bodyBytes); + stderr.writeln('Username : $responseBody'); + + 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.from(event.organizers ?? []); + place = event.place ?? ""; + imgUrl = event.imgUrl ?? ""; + eventDescription = event.description ?? ""; + tags = List.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();