Skip to content
This repository has been archived by the owner on Nov 18, 2024. It is now read-only.

Commit

Permalink
test editprofil
Browse files Browse the repository at this point in the history
  • Loading branch information
KilianBre committed May 5, 2024
1 parent 441bd63 commit ae055b5
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 14 deletions.
46 changes: 46 additions & 0 deletions backend/app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -850,4 +850,50 @@ protected function getBannedUsersCount() {
protected function getUnverifiedEmailsCount() {
return User::where('is_verified', false)->count();
}


public function editUserData(Request $request)
{
// Validation des données entrantes
$validator = Validator::make($request->all(), [
'id' => 'required|string', // Assurez-vous que l'ID de l'utilisateur est présent et est un entier
'lastName' => 'nullable|string',
'firstName' => 'nullable|string',
'email' => 'nullable|string|email',
'isEmailVerified' => 'nullable|boolean',
'country' => 'nullable|string',
'city' => 'nullable|string',
'postalCode' => 'nullable|string',
// Ajoutez d'autres règles de validation au besoin
]);

// Vérifiez si la validation a échoué
if ($validator->fails()) {
return response()->json($validator->errors(), 400);
}

try {
DB::beginTransaction();

// Récupérez l'ID de l'utilisateur à partir de la requête
$userId = $request->input('id');

// Récupérez l'utilisateur à partir de l'ID
$user = User::findOrFail($userId);

// Mettez à jour les champs modifiables de l'utilisateur avec les nouvelles valeurs
$user->update($request->only([
'lastName', 'firstName', 'email', 'isEmailVerified', 'country', 'city', 'postalCode'
]));

DB::commit();

// Retournez une réponse JSON avec un message de succès et les données utilisateur mises à jour
return response()->json(['message' => 'Données utilisateur mises à jour avec succès', 'user' => $user], 200);
} catch (\Exception $e) {
DB::rollBack();
// En cas d'erreur, retournez une réponse JSON avec un message d'erreur
return response()->json(['error' => 'Une erreur est survenue lors de la mise à jour des données utilisateur.'], 500);
}
}
}
3 changes: 3 additions & 0 deletions backend/routes/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,7 @@
Route::post('user/create', [UserController::class, 'create']);
});

// Profile
Route::poste('saveUserData', [UserController::class, 'editUserData']);

});
29 changes: 15 additions & 14 deletions frontend/src/app/(connected)/(front-office)/profil/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const UserProfilePage = () => {
try {
setUserData(user);
form.setFieldsValue({
id: user?.id,
lastName: user?.lastName,
firstName: user?.firstName,
email: user?.email,
Expand Down Expand Up @@ -63,6 +64,7 @@ const UserProfilePage = () => {
// Si la validation réussit, les valeurs dans le formulaire sont récupérées avec getFieldsValue
const values = form.getFieldsValue();
console.log('Form values:', values);
var id = user?.id;

// Vérifiez si l'email a été modifié
const emailChanged = values.email !== userData?.email;
Expand All @@ -73,21 +75,21 @@ const UserProfilePage = () => {
}

// Temporairement retiré pour tester les champs sans connexion à l'API
const response: any = await axios({
method: 'post',
baseURL: 'http://localhost/api',
url: '/edit/${userData.id}',
data: {
// id_user: userData.id,
updatedData: values,
},
withCredentials: true,
responseType: 'json',
timeout: 10000,
});
const response: any = await axios({
method: 'post',
baseURL: process.env.NEXT_PUBLIC_BACKEND_API_URL,
url: "/saveUserData",
data: {
userId: id,
updatedData: values,
},
withCredentials: true,
responseType: 'json',
timeout: 10000,
});

// Temporairement utilisé pour simuler une réponse du serveur
// const response = { data: { ...values, isEmailVerified: values.isEmailVerified } };
// const response = { data: { ...values, isEmailVerified: values.isEmailVerified } };

setUserData(response.data);
message.success('Data saved successfully!');
Expand Down Expand Up @@ -124,7 +126,6 @@ const UserProfilePage = () => {
icon={editing ? <LeftOutlined /> : <EditOutlined />}
onClick={editing ? handleCancel : handleEdit}
key="edit"
disabled={false}
>
{editing ? 'Retour' : 'Modifier'}
</Button>
Expand Down

0 comments on commit ae055b5

Please sign in to comment.