<?php
namespace App\Controller;
use App\Entity\Prestation;
use App\Entity\Token;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class PrestationController extends AbstractController
{
/**
* @Route("/prestations", name="getPrestations", methods={"GET","HEAD"})
*/
public function getPrestations(Request $request)
{
/* if (!$request->query->get('token'))
return new Response(json_encode([
"message" => "Pas de token n'a été spécifié",
"status" => 401,
]), 401);
$entityManager = $this->getDoctrine()->getManager();
/** @var Token
$token = $this->getDoctrine()
->getRepository(Token::class)
->findOneBy(['token' => $request->query->get('token')]);
if (!$token)
return new Response(json_encode([
"message" => "Pas de token trouvé dans la base de données. Veuillez vous reconnecter.",
"status" => 404,
]), 404);
// get token age
$dateDiff = $token->getCreationDate()->diff(new DateTime());
// if the token if older than 7 days
if ($dateDiff->d > 7) {
$entityManager->remove($token);
$entityManager->flush();
return $this->json([
'message' => 'Ce token est obselète. Veuillez vous reconnecter.',
'path' => 'src/Controller/ClientController.php',
"status" => 401
], 401);
}*/
$prestations = $this->getDoctrine()
->getRepository(Prestation::class)->findAll();
$resultPrestation = new ArrayCollection();
foreach ($prestations as $prestation) {
$resultPrestation->add([
"id" => $prestation->getId(),
"libelle" => $prestation->getLibelle(),
]);
}
return new Response(json_encode(([
"prestations" => $resultPrestation->toArray(),
])));
}
}