<?php
namespace App\Controller;
use App\Entity\Specialite;
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 SpecialiteController extends AbstractController
{
/**
* @Route("/specialites", name="getSpecialite", methods={"GET","HEAD"})
*/
public function getSpecialite(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);
} */
$specialites = $this->getDoctrine()
->getRepository(Specialite::class)->findAll();
$resultSpecialite = new ArrayCollection();
foreach ($specialites as $specialite) {
$resultSpecialite->add([
"id" => $specialite->getId(),
"libelle" => $specialite->getLibelle(),
]);
}
return new Response(json_encode(([
"specialites" => $resultSpecialite->toArray(),
])));
}
}