<?php
namespace App\Controller\Api;
use App\Service\CatalogosManager;
use FOS\RestBundle\Controller\AbstractFOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\View\View;
use Symfony\Component\HttpFoundation\{Request, Response};
class CatalogosController extends AbstractFOSRestController {
// ? READ
/**
* @Rest\Get(path="/api/catalogos/categorias")
*/
public function getCategorias(CatalogosManager $catalogosManager) {
$data = $catalogosManager->getCategorias();
return View::create($data, Response::HTTP_ACCEPTED);
}
/**
* @Rest\Get(path="/api/catalogos/formaMesa/{idFormaMesa}/imagen")
*/
public function getImagenFormaMesa(int $idFormaMesa, CatalogosManager $catalogosManager) {
$base64 = $catalogosManager->getImagenFormaMesa($idFormaMesa);
if (!$base64) : return new Response('', Response::HTTP_NOT_FOUND); endif;
if (strpos($base64, 'base64,') !== false) : $base64 = explode('base64,', $base64, 2)[1]; endif;
$imagen = base64_decode($base64);
if ($imagen === false) : return new Response('', Response::HTTP_BAD_REQUEST); endif;
$finfo = new \finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->buffer($imagen);
return new Response($imagen, Response::HTTP_OK, ['Content-Type' => $mimeType, 'Content-Disposition' => 'inline']);
}
// ? CREATE
/**
* @Rest\Post(path="/api/catalogos/crearCategoria")
*/
public function crearUsuario(CatalogosManager $catalogosManager, Request $request) {
$response = $catalogosManager->crearCategoria($request);
return View::create($response, Response::HTTP_ACCEPTED);
}
}