Files
cesizen-individuel/backend/app/Http/Controllers/ProfilController.php
T
Azmog bfd35905c9 feat: add mobile application structure with emotion picker and API integration
- Added favicon and icon assets for the mobile app.
- Implemented EmotionPicker component for selecting emotions with child options.
- Created hooks for fetching emotions, feeds, and rapport data.
- Established API service for handling requests and authentication.
- Integrated Zustand for state management of user authentication.
- Defined color palette for the application.
- Set up TypeScript types for various entities including User, Emotion, and Feed.
- Configured Babel and TypeScript for the mobile project.
- Added package.json with necessary dependencies for Expo and React Native.
2026-04-15 16:09:20 +02:00

60 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\UpdatePasswordRequest;
use App\Http\Requests\UpdateProfilRequest;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Hash;
class ProfilController extends Controller
{
public function show(): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->load('role');
return response()->json($utilisateur);
}
public function update(UpdateProfilRequest $request): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->update($request->validated());
$utilisateur->load('role');
return response()->json([
'message' => 'Profil mis à jour',
'utilisateur' => $utilisateur,
]);
}
public function updatePassword(UpdatePasswordRequest $request): JsonResponse
{
$utilisateur = auth()->user();
if (!Hash::check($request->ancien_mot_de_passe, $utilisateur->password)) {
return response()->json([
'message' => 'L\'ancien mot de passe est incorrect',
], 422);
}
$utilisateur->update(['password' => $request->password]);
return response()->json([
'message' => 'Mot de passe modifié avec succès',
]);
}
public function destroy(): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->delete();
auth()->logout();
return response()->json([
'message' => 'Compte supprimé avec succès',
]);
}
}