Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
654 changes: 489 additions & 165 deletions _ide_helper.php

Large diffs are not rendered by default.

156 changes: 150 additions & 6 deletions app/Http/Controllers/Api/AbonnementController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

use App\Models\Abonnement;
use Illuminate\Http\Request;
use Validator;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;

/**
*
Expand All @@ -21,8 +22,18 @@ class AbonnementController extends BaseController
*/
public function index()
{
// Log du début de la requête
Log::debug('Récupération de la liste des abonnements', ['controller' => 'AbonnementController', 'method' => 'index']);

$abonnements = Abonnement::all();

// Log du nombre d'abonnements récupérés
Log::info('Liste des abonnements récupérée', [
'controller' => 'AbonnementController',
'method' => 'index',
'count' => count($abonnements)
]);

$success['abonnements'] = $abonnements;

return $this->sendResponse($success, 'Liste des Abonnements');
Expand All @@ -40,28 +51,56 @@ public function index()
*/
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
// Log du début de la création
Log::debug('Tentative de création d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'store',
'inputs' => $request->all()
]);

$validator = Validator::make($request->all(), [
'nom' => 'required',
'prix' => 'required',
'duree' => 'required',
]);

if ($validator->fails()) {
// Log des erreurs de validation
Log::warning('Validation échouée lors de la création d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'store',
'errors' => $validator->errors()->toArray()
]);

return $this->sendError('Erreur de paramètres.', $validator->errors(), 400);
}

$input['nom'] = $request->nom;
$input['prix'] = $request->prix;
$input['duree'] = $request->duree;
try {

$abonnement = Abonnement::create($input);

$success['abonnement'] = $abonnement;
// Log du succès de la création
Log::info('Abonnement créé avec succès', [
'controller' => 'AbonnementController',
'method' => 'store',
'abonnement_id' => $abonnement->id,
'abonnement_nom' => $abonnement->nom
]);

$success['abonnement'] = $abonnement;

return $this->sendResponse($success, "Création de l'abonnement reussie", 201);
} catch (\Exception $ex) {
// Log de l'erreur
Log::error('Erreur lors de la création d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'store',
'exception' => $ex->getMessage(),
'trace' => $ex->getTraceAsString()
]);

return $this->sendError('Erreur.', ['error' => $ex->getMessage()], 400);
}
}
Expand All @@ -74,8 +113,31 @@ public function store(Request $request)
*/
public function show($id)
{
// Log de la demande de détails
Log::debug('Récupération des détails d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'show',
'abonnement_id' => $id
]);

$abonnement = Abonnement::find($id);

// Log du résultat de la recherche
if ($abonnement) {
Log::info('Détails de l\'abonnement récupérés', [
'controller' => 'AbonnementController',
'method' => 'show',
'abonnement_id' => $id,
'abonnement_nom' => $abonnement->nom
]);
} else {
Log::warning('Abonnement non trouvé', [
'controller' => 'AbonnementController',
'method' => 'show',
'abonnement_id' => $id
]);
}

$success['abonnement'] = $abonnement;

return $this->sendResponse($success, "Abonnement");
Expand All @@ -95,21 +157,69 @@ public function show($id)
*/
public function update(Request $request, $id)
{
// Log de la tentative de mise à jour
Log::debug('Tentative de mise à jour d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'update',
'abonnement_id' => $id,
'inputs' => $request->all()
]);

try {
$abonnement = Abonnement::find($id);

if (!$abonnement) {
Log::warning('Tentative de mise à jour d\'un abonnement inexistant', [
'controller' => 'AbonnementController',
'method' => 'update',
'abonnement_id' => $id
]);
return $this->sendError('Abonnement non trouvé', [], 404);
}

// Log des anciennes valeurs avant mise à jour
Log::debug('Anciennes valeurs de l\'abonnement', [
'controller' => 'AbonnementController',
'method' => 'update',
'abonnement_id' => $id,
'old_values' => [
'nom' => $abonnement->nom,
'prix' => $abonnement->prix,
'duree' => $abonnement->duree
]
]);

$abonnement->nom = $request->nom ?? $abonnement->nom;
$abonnement->prix = $request->prix ?? $abonnement->prix;
$abonnement->duree = $request->duree ?? $abonnement->duree;


$abonnement->save();

$success['abonnement'] = $abonnement;
// Log du succès de la mise à jour
Log::info('Abonnement mis à jour avec succès', [
'controller' => 'AbonnementController',
'method' => 'update',
'abonnement_id' => $id,
'new_values' => [
'nom' => $abonnement->nom,
'prix' => $abonnement->prix,
'duree' => $abonnement->duree
]
]);

$success['abonnement'] = $abonnement;

return $this->sendResponse($success, "Update Success", 201);
} catch (\Throwable $th) {
// Log de l'erreur
Log::error('Erreur lors de la mise à jour d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'update',
'abonnement_id' => $id,
'exception' => $th->getMessage(),
'trace' => $th->getTraceAsString()
]);

return $this->sendError('Echec de mise à jour', ['error' => $th->getMessage()], 400);
}
}
Expand All @@ -123,12 +233,46 @@ public function update(Request $request, $id)
*/
public function destroy($id)
{
// Log de la tentative de suppression
Log::debug('Tentative de suppression d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'destroy',
'abonnement_id' => $id
]);

$abonnement = Abonnement::find($id);

if (!$abonnement) {
Log::warning('Tentative de suppression d\'un abonnement inexistant', [
'controller' => 'AbonnementController',
'method' => 'destroy',
'abonnement_id' => $id
]);
return $this->sendError('Abonnement non trouvé', [], 404);
}

try {
$abonnement->delete();

// Log du succès de la suppression
Log::info('Abonnement supprimé avec succès', [
'controller' => 'AbonnementController',
'method' => 'destroy',
'abonnement_id' => $id,
'abonnement_nom' => $abonnement->nom
]);

return $this->sendResponse("", "Delete Success", 200);
} catch (\Throwable $th) {
// Log de l'erreur
Log::error('Erreur lors de la suppression d\'un abonnement', [
'controller' => 'AbonnementController',
'method' => 'destroy',
'abonnement_id' => $id,
'exception' => $th->getMessage(),
'trace' => $th->getTraceAsString()
]);

return $this->sendError('Erreur de suppression.', ['error' => $th->getMessage()], 400);
}
}
Expand Down
Loading
Loading