|
|
|
@@ -9,6 +9,7 @@ import 'dart:io';
|
|
|
|
|
|
|
|
|
|
import '../classes/events.dart';
|
|
|
|
|
import '../classes/MyDrawer.dart';
|
|
|
|
|
import '../main.dart';
|
|
|
|
|
|
|
|
|
|
import '../classes/alert.dart';
|
|
|
|
|
import '../classes/eventAdded.dart';
|
|
|
|
@@ -104,6 +105,7 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
|
|
|
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
|
|
|
var accessToken = prefs.getString("access_token") ?? "";
|
|
|
|
|
if (accessToken.isNotEmpty) {
|
|
|
|
|
var responsePut = await http.put(urlPut,
|
|
|
|
|
headers: {
|
|
|
|
|
HttpHeaders.cookieHeader: 'access_token=${accessToken}',
|
|
|
|
@@ -136,11 +138,59 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
final text = errorMessages[responsePut.statusCode] ??
|
|
|
|
|
"Problème d'authentification inconnu";
|
|
|
|
|
showAlertDialog(context, "Erreur serveur", text);
|
|
|
|
|
} else {
|
|
|
|
|
Navigator.pushReplacement(
|
|
|
|
|
context, MaterialPageRoute(builder: (_) => LoginDemo()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> _getInfoProfile() async {
|
|
|
|
|
var urlGet = Uri.parse("${globals.api}/users/me");
|
|
|
|
|
|
|
|
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
|
|
|
var accessToken = prefs.getString("access_token") ?? "";
|
|
|
|
|
if (accessToken.isNotEmpty) {
|
|
|
|
|
var responseGet = await http.get(urlGet, headers: {
|
|
|
|
|
HttpHeaders.cookieHeader: 'access_token=${accessToken}',
|
|
|
|
|
HttpHeaders.acceptHeader: 'application/json, text/plain, */*',
|
|
|
|
|
HttpHeaders.contentTypeHeader: 'application/json'
|
|
|
|
|
});
|
|
|
|
|
print(responseGet.statusCode);
|
|
|
|
|
if (responseGet.statusCode == 200) {
|
|
|
|
|
var body = json.decode(utf8.decode(responseGet.bodyBytes));
|
|
|
|
|
setState(() {
|
|
|
|
|
inputName.text = body["name"];
|
|
|
|
|
inputFirstName.text = body["firstName"];
|
|
|
|
|
inputUserName.text = body["username"];
|
|
|
|
|
inputEmail = body["email"];
|
|
|
|
|
inputBirth.text =
|
|
|
|
|
DateFormat("dd/MM/yyyy").format(DateTime.parse(body["birth"]));
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final errorMessages = {
|
|
|
|
|
400: "Requête mal construite",
|
|
|
|
|
406: "Mot de passe incorrect",
|
|
|
|
|
404: "Utilisateur inconnu",
|
|
|
|
|
403: "Utilisateur désactivé",
|
|
|
|
|
410: "Token invalide",
|
|
|
|
|
500: "Problème interne du serveur",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
final text = errorMessages[responseGet.statusCode] ??
|
|
|
|
|
"Problème d'authentification inconnu";
|
|
|
|
|
showAlertDialog(context, "Erreur serveur", text);
|
|
|
|
|
} else {
|
|
|
|
|
Navigator.pushReplacement(
|
|
|
|
|
context, MaterialPageRoute(builder: (_) => LoginDemo()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
_getInfoProfile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final _formKey = GlobalKey<FormState>();
|
|
|
|
@@ -164,8 +214,9 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
child: Column(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputUserName,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
@@ -176,12 +227,12 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputPassword,
|
|
|
|
|
obscureText: true,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
|
decoration: InputDecoration(
|
|
|
|
|
border: OutlineInputBorder(),
|
|
|
|
|
labelText: 'Mot de passe',
|
|
|
|
@@ -189,12 +240,12 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputPasswordConfirmed,
|
|
|
|
|
obscureText: true,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
|
decoration: InputDecoration(
|
|
|
|
|
border: OutlineInputBorder(),
|
|
|
|
|
labelText: 'Mot de passe',
|
|
|
|
@@ -202,8 +253,9 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputName,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
@@ -214,8 +266,9 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputFirstName,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
@@ -226,8 +279,9 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
//padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0),
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 15.0, right: 15.0, top: 15, bottom: 0),
|
|
|
|
|
//padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
controller: inputName,
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
@@ -247,7 +301,7 @@ class _EditProfileState extends State<EditProfile>
|
|
|
|
|
validator: (value) => _validateField(value),
|
|
|
|
|
decoration: InputDecoration(
|
|
|
|
|
border: OutlineInputBorder(),
|
|
|
|
|
labelText: 'Date de nassance',
|
|
|
|
|
labelText: 'Date de naissance',
|
|
|
|
|
hintText: 'Cliquez ici pour selectionner une date'),
|
|
|
|
|
onTap: () => onTapFunctionDatePicker(context: context)),
|
|
|
|
|
),
|
|
|
|
|