From f84f513e6717e603480ceb224c5b1664265ab472 Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Fri, 3 Jan 2025 18:03:24 +0100 Subject: [PATCH] update function update --- covas_mobile/lib/pages/EditProfile.dart | 224 +++++++----------------- 1 file changed, 65 insertions(+), 159 deletions(-) diff --git a/covas_mobile/lib/pages/EditProfile.dart b/covas_mobile/lib/pages/EditProfile.dart index 17dc4df..786acfd 100644 --- a/covas_mobile/lib/pages/EditProfile.dart +++ b/covas_mobile/lib/pages/EditProfile.dart @@ -88,169 +88,75 @@ class _EditProfileState extends State } Future _updateProfile(BuildContext context) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + var accessToken = prefs.getString("access_token") ?? ""; + + var username = inputUserName.text; + var firstName = inputFirstName.text; var name = inputName.text; - var place = inputGeo.text; - var description = inputDesc.text; + var email = inputEmail.text; + var password = inputPassword.text; - var startDateFormat = formatDate(startDatepicker.text); - //DateTime startDateCompare = DateTime.parse(startDateFormat); - DateTime dateNow = DateTime.now(); - var endDateFormat = formatDate(endDatepicker.text); - var startDate = - "${startDateFormat}T${startTimepicker.text.replaceAll('-', ':')}"; - var endDate = "${endDateFormat}T${endTimepicker.text.replaceAll('-', ':')}"; - DateTime startDateCompare = DateTime.parse(startDate); - if (startDateCompare.isAfter(dateNow)) { - SharedPreferences prefs = await SharedPreferences.getInstance(); - var accessToken = prefs.getString("access_token") ?? ""; + var birth = DateTime.parse(formatDate(inputBirth.text)); + var urlPut = Uri.parse("${globals.api}/users/me"); - if (accessToken.isNotEmpty) { - try { - await dotenv.load(); - final ApiTokenGoogle = dotenv.env['PLACE_API_KEY'] ?? ''; - // Searchbox API for geocoding the place (No session token) - final searchboxUrl = Uri.parse( - 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=${place}&key=${ApiTokenGoogle}'); - - // Perform the request - final searchboxResponse = await http.get(searchboxUrl); - - if (searchboxResponse.statusCode == 200) { - final data = json.decode(searchboxResponse.body); - print("data : ${data}"); - - if (data['results'].isNotEmpty) { - place = data['results'][0]['formatted_address']; - final coordinates = data['results'][0]['geometry']['location']; - final longitude = coordinates["lng"]; // Longitude - final latitude = coordinates["lat"]; // Latitude - var urlGet = Uri.parse( - "${globals.api}/events/search?item=${name}&date_event=${startDate}&min_lat=$latitude&max_lat=$latitude" - "&min_lon=$longitude&max_lon=$longitude"); - - var responseGet = await http.get(urlGet, headers: { - HttpHeaders.cookieHeader: 'access_token=${accessToken}' - }); - if (responseGet.statusCode == 200) { - var events = jsonDecode(utf8.decode(responseGet.bodyBytes)); - if (events.length > 0) { - if (events[0]["id"] != widget.events!.id) { - showAlertDialog( - context, "Info evenement", "Evenement deja existant"); - } - - return; - } - } - - if (widget.imgPath.isNotEmpty) { - final params = { - 'expiration': '15552000', - 'key': dotenv.env["IMGBB_API_KEY"], - }; - print("Post Img"); - final urlPost = Uri.parse('https://api.imgbb.com/1/upload') - .replace(queryParameters: params); - File image = File(widget.imgPath); - Uint8List _bytes = await image.readAsBytes(); - String _base64String = base64.encode(_bytes); - - final req = http.MultipartRequest('POST', urlPost) - ..fields['image'] = _base64String; - - final stream = await req.send(); - final res = await http.Response.fromStream(stream); - - final status = res.statusCode; - print("code status imgbb ${status}"); - if (status != 200) { - showAlertDialog(context, "Erreur image", "Image non posté"); - return; - } - var body = json.decode(utf8.decode(res.bodyBytes)); - imgUrl = body["data"]["url"]; - } - var urlPut = - Uri.parse("${globals.api}/events/${widget.events!.id}"); - var responsePut = await http.put(urlPut, - headers: { - HttpHeaders.cookieHeader: 'access_token=${accessToken}', - HttpHeaders.acceptHeader: - 'application/json, text/plain, */*', - HttpHeaders.contentTypeHeader: 'application/json' - }, - body: jsonEncode({ - 'name': name, - 'place': place, - 'start_date': startDate, - 'end_date': endDate, - 'organizers': organizers, - 'latitude': latitude, - 'longitude': longitude, - 'description': description, - "imgUrl": imgUrl, - "tags": tags - })); - print(responsePut.statusCode); - if ((responsePut.statusCode == 200) || - (responsePut.statusCode == 201)) { - showEventDialog(context, "Evenement ${name} modifie"); - } else { - var text = ""; - switch (responsePut.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 = "Utilisateur desactive"; - } - 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", "Aucune donnée geographique"); - } - } else { - showAlertDialog(context, "Erreur serveur", "Mapbox non accessible"); - } - } catch (e) { - showAlertDialog(context, "Erreur serveur", "${e}"); - } - } else { - showAlertDialog(context, "Erreur utilisateur", "Champ vide"); - } + var responsePut = await http.put(urlPut, + headers: { + HttpHeaders.cookieHeader: 'access_token=${accessToken}', + HttpHeaders.acceptHeader: 'application/json, text/plain, */*', + HttpHeaders.contentTypeHeader: 'application/json' + }, + body: jsonEncode({ + 'name': name, + 'username': username, + 'firstName': firstName, + 'password': password, + 'email': email, + 'birth': birth + })); + print(responsePut.statusCode); + if (responsePut.statusCode == 200) { + showEventDialog(context, " Votre utiliseteur modifie"); } else { - showAlertDialog(context, "Erreur evenement", "Evenement non futur"); + var text = ""; + switch (responsePut.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 = "Utilisateur desactive"; + } + 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); } }