<?php
namespace App\MDS\ApiBundle\Controller;
use App\Helper\CardHelper;
use App\MDS\ApiBundle\Auth;
use App\Repository\CardRepository;
use FOS\RestBundle\Controller\AbstractFOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\SerializerInterface;
final class ApiCardController extends AbstractFOSRestController
{
/**
* Devolver las tarjetas activas
*
* @Rest\Get("/api/card/active")
*/
function activeCards(Request $request, CardRepository $cardRepository, SerializerInterface $serializer) : JsonResponse {
$token = $request->headers->get('token');
try {
Auth::check($token);
} catch (\Throwable $th) {
return new JsonResponse($th, JsonResponse::HTTP_BAD_REQUEST);
}
$cards = $cardRepository->findBy(['status' => CardHelper::STATUS_ACTIVATED]);
$cards = $serializer->serialize($cards, 'json', [
AbstractNormalizer::GROUPS => ['card:read'],
]);
return new JsonResponse($cards, JsonResponse::HTTP_OK, [], true);
}
}