chore(app): mises a jour applicatives et normalisation du code (Laravel Pint)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 18:44:13 +02:00
parent c51f17a74c
commit 70d4767890
32 changed files with 144 additions and 89 deletions
+16 -15
View File
@@ -13,10 +13,11 @@ use Illuminate\Validation\Rule;
class AuthController extends Controller
{
// AuthController.php
public function login(Request $request) {
public function login(Request $request)
{
$fields = $request->validate([
'email' => 'required|string|email',
'password' => 'required|string'
'password' => 'required|string',
]);
// Log::info('Tentative de connexion', $request->all());
@@ -24,18 +25,18 @@ class AuthController extends Controller
$user = User::where('email', $fields['email'])->first();
// Vérification du mot de passe haché (Sécurité)
if(!$user || !Hash::check($fields['password'], $user->password)) {
if (! $user || ! Hash::check($fields['password'], $user->password)) {
return response([
'status' => 'error',
'message' => 'Identifiants invalides'
'message' => 'Identifiants invalides',
], 401);
}
// Vérification si le compte est actif
if (!$user->is_active) {
if (! $user->is_active) {
return response([
'status' => 'error',
'message' => 'Votre compte a été désactivé par un administrateur.'
'message' => 'Votre compte a été désactivé par un administrateur.',
], 403);
}
@@ -49,7 +50,7 @@ class AuthController extends Controller
return response([
'status' => 'success',
'user' => $user,
'token' => $token
'token' => $token,
], 200);
}
@@ -62,14 +63,14 @@ class AuthController extends Controller
'password' => 'required|string|min:8|confirmed',
]);
Log::info('Tentative de création', $request->all());
if ($validator->fails()) {
Log::info( $validator->errors());
Log::info($validator->errors());
return response()->json([
'status' => 'error',
'errors' => $validator->errors()
'errors' => $validator->errors(),
], 422);
}
@@ -87,7 +88,7 @@ class AuthController extends Controller
'status' => 'success',
'message' => 'Compte créé avec succès',
'user' => $user,
'token' => $token
'token' => $token,
], 201);
}
@@ -100,15 +101,15 @@ class AuthController extends Controller
'email' => [
'sometimes',
'email',
Rule::unique('users')->ignore($user->id) // Empêche les doublons en BDD
Rule::unique('users')->ignore($user->id), // Empêche les doublons en BDD
],
]);
// 2. Vérification de sécurité (RGPD/Confidentialité)
if (!Hash::check($request->current_password, $user->password)) {
if (! Hash::check($request->current_password, $user->password)) {
return response()->json([
'status' => 'error',
'message' => 'Le mot de passe actuel est incorrect'
'message' => 'Le mot de passe actuel est incorrect',
], 403);
}
@@ -119,7 +120,7 @@ class AuthController extends Controller
return response()->json([
'status' => 'success',
'user' => $user
'user' => $user,
]);
}
}
@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\EmotionRecord;
use Illuminate\Support\Facades\Log;
class EmotionController extends Controller
@@ -18,7 +17,7 @@ class EmotionController extends Controller
{
Log::info('Tentative d\'enregistrement d\'émotion', [
'user' => $request->user()->id,
'data' => $request->all()
'data' => $request->all(),
]);
try {
@@ -35,7 +34,8 @@ class EmotionController extends Controller
return response()->json($record, 201);
} catch (\Exception $e) {
Log::error('Erreur enregistrement émotion : ' . $e->getMessage());
Log::error('Erreur enregistrement émotion : '.$e->getMessage());
return response()->json(['error' => 'Erreur serveur'], 500);
}
}
@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Information;
use Illuminate\Http\Request;
class InformationController extends Controller
{
@@ -16,7 +15,7 @@ class InformationController extends Controller
return response()->json([
'status' => 'success',
'data' => $informations
'data' => $informations,
]);
}
@@ -24,16 +23,16 @@ class InformationController extends Controller
{
$information = Information::where('is_published', true)->find($id);
if (!$information) {
if (! $information) {
return response()->json([
'status' => 'error',
'message' => 'Information non trouvée'
'message' => 'Information non trouvée',
], 404);
}
return response()->json([
'status' => 'success',
'data' => $information
'data' => $information,
]);
}
}
@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\StressEvent;
use Illuminate\Http\Request;
class StressDiagnosticController extends Controller
{
@@ -2,8 +2,6 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class DashboardController extends Controller
@@ -17,7 +15,7 @@ class DashboardController extends Controller
$stats = [
'relaxation_time' => '45 min',
'stress_status' => 'Stable',
'last_diagnostic' => 'il y a 3 jours'
'last_diagnostic' => 'il y a 3 jours',
];
return view('welcome', compact('user', 'stats'));
@@ -24,6 +24,7 @@ class AuthController extends Controller
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('/');
}
@@ -61,6 +62,7 @@ class AuthController extends Controller
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/login');
}
}
@@ -3,7 +3,9 @@
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\ResultatDiag;
use App\Models\StressEvent;
use App\Services\StressCalculator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -14,23 +16,25 @@ class DiagnosticController extends Controller
$events = StressEvent::all();
$history = [];
if (Auth::check()) {
$history = \App\Models\ResultatDiag::where('id_user', Auth::id())
$history = ResultatDiag::where('id_user', Auth::id())
->orderBy('date_passage', 'desc')
->take(5)
->get();
}
return view('diagnostics.index', compact('events', 'history'));
}
public function history()
{
$history = \App\Models\ResultatDiag::where('id_user', Auth::id())
$history = ResultatDiag::where('id_user', Auth::id())
->orderBy('date_passage', 'desc')
->get();
return view('diagnostics.history', compact('history'));
}
public function store(Request $request, \App\Services\StressCalculator $calculator)
public function store(Request $request, StressCalculator $calculator)
{
// Logique pour calculer le score Holmes-Rahe
$totalPoints = 0;
@@ -43,7 +47,7 @@ class DiagnosticController extends Controller
// Enregistrement si l'utilisateur est connecté
if (Auth::check()) {
\App\Models\ResultatDiag::create([
ResultatDiag::create([
'id_user' => Auth::id(),
'score_total' => $totalPoints,
'niveau_stress' => $niveauStress,
@@ -12,6 +12,7 @@ class EmotionController extends Controller
public function index()
{
$records = EmotionRecord::where('user_id', Auth::id())->latest()->get();
return view('emotions.index', compact('records'));
}
@@ -20,14 +21,14 @@ class EmotionController extends Controller
$request->validate([
'emotion' => 'required|string',
'intensity' => 'required|integer|min:1|max:5',
'note' => 'nullable|string'
'note' => 'nullable|string',
]);
EmotionRecord::create([
'user_id' => Auth::id(),
'emotion' => $request->emotion,
'intensity' => $request->intensity,
'note' => $request->note
'note' => $request->note,
]);
return redirect()->back()->with('success', 'Émotion enregistrée');
@@ -23,7 +23,7 @@ class ProfileController extends Controller
$validated = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . $user->id],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,'.$user->id],
]);
$user->fill($validated);
@@ -4,9 +4,7 @@ namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\RelaxationActivity;
use App\Models\Favorite;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class RelaxationController extends Controller
{
+5 -2
View File
@@ -16,7 +16,7 @@ class ResultatDiag extends Model
'date_passage',
'score_total',
'niveau_stress',
'event_ids'
'event_ids',
];
public function user()
@@ -26,8 +26,11 @@ class ResultatDiag extends Model
public function getEventsAttribute()
{
if (!$this->event_ids) return collect();
if (! $this->event_ids) {
return collect();
}
$ids = explode(';', $this->event_ids);
return StressEvent::whereIn('id', $ids)->get();
}
}
+1 -1
View File
@@ -2,8 +2,8 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
+2 -1
View File
@@ -2,6 +2,7 @@
namespace App\Providers;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
@@ -20,7 +21,7 @@ class AppServiceProvider extends ServiceProvider
public function boot(): void
{
if (config('app.env') === 'production' || config('app.env') === 'local') {
\Illuminate\Support\Facades\URL::forceScheme('https');
URL::forceScheme('https');
}
}
}
+2
View File
@@ -5,7 +5,9 @@ namespace App\Services;
class StressCalculator
{
public const LEVEL_HIGH = 'Élevé';
public const LEVEL_MODERATE = 'Modéré';
public const LEVEL_LOW = 'Faible';
public function calculateScore(array $points): int