src/Controller/Api/CatalogosController.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Service\CatalogosManager;
  4. use FOS\RestBundle\Controller\AbstractFOSRestController;
  5. use FOS\RestBundle\Controller\Annotations as Rest;
  6. use FOS\RestBundle\View\View;
  7. use Symfony\Component\HttpFoundation\{Request, Response};
  8. class CatalogosController extends AbstractFOSRestController {
  9.   // ? READ
  10.     /**
  11.      * @Rest\Get(path="/api/catalogos/categorias")
  12.      */
  13.     public function getCategorias(CatalogosManager $catalogosManager) {
  14.       $data = $catalogosManager->getCategorias();
  15.       return View::create($data, Response::HTTP_ACCEPTED);
  16.     }
  17.     /**
  18.      * @Rest\Get(path="/api/catalogos/formaMesa/{idFormaMesa}/imagen")
  19.      */
  20.     public function getImagenFormaMesa(int $idFormaMesa, CatalogosManager $catalogosManager) {
  21.       $base64 = $catalogosManager->getImagenFormaMesa($idFormaMesa);
  22.             if (!$base64) : return new Response('', Response::HTTP_NOT_FOUND); endif;
  23.             if (strpos($base64, 'base64,') !== false) :    $base64 = explode('base64,', $base64, 2)[1];    endif;
  24.             $imagen = base64_decode($base64);
  25.             if ($imagen === false) :    return new Response('', Response::HTTP_BAD_REQUEST);    endif;
  26.             $finfo = new \finfo(FILEINFO_MIME_TYPE);
  27.             $mimeType = $finfo->buffer($imagen);
  28.             return new Response($imagen, Response::HTTP_OK, ['Content-Type' => $mimeType, 'Content-Disposition' => 'inline']);
  29.     }
  30.     // ? CREATE
  31.     /**
  32.      * @Rest\Post(path="/api/catalogos/crearCategoria")
  33.      */
  34.     public function crearUsuario(CatalogosManager $catalogosManager, Request $request) {
  35.       $response = $catalogosManager->crearCategoria($request);
  36.             return View::create($response,  Response::HTTP_ACCEPTED);
  37.     }
  38. }