Files
Projet_Symfony_IA_Quentin/src/Controller/LockController.php
2025-10-24 16:13:37 +02:00

56 lines
1.7 KiB
PHP

<?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');
}
}