Réalisation finale

This commit is contained in:
Logshiro
2025-10-24 16:13:37 +02:00
parent 6585fef404
commit 7e4cdedf3d
73 changed files with 6154 additions and 14 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Controller;
use App\Service\LockService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/lock')]
class LockController extends AbstractController
{
public function __construct(
private LockService $lockService
) {}
#[Route('/cleanup', name: 'app_lock_cleanup', methods: ['POST'])]
public function cleanup(): JsonResponse
{
$removedCount = $this->lockService->cleanupExpiredLocks();
return new JsonResponse([
'message' => "Nettoyage terminé",
'removedLocks' => $removedCount
]);
}
#[Route('/user-locks', name: 'app_lock_user_locks', methods: ['GET'])]
public function getUserLocks(Request $request): JsonResponse
{
// Cette méthode pourrait être utilisée pour afficher les verrous de l'utilisateur
return new JsonResponse([
'message' => 'Fonctionnalité à implémenter'
]);
}
#[Route('/release-all', name: 'app_lock_release_all', methods: ['POST'])]
public function releaseAll(Request $request): JsonResponse
{
$removedCount = $this->lockService->removeUserLocks($request);
return new JsonResponse([
'message' => "Tous vos verrous ont été libérés",
'removedLocks' => $removedCount
]);
}
#[Route('/stats', name: 'app_lock_stats', methods: ['GET'])]
public function stats(): Response
{
return $this->render('lock/stats.html.twig');
}
}