src/Controller/API/CategoriaController.php line 47

Open in your IDE?
  1. <?php
  2. namespace App\Controller\API;
  3. use App\Controller\BaseController;
  4. use App\Entity\Log\LogInteraction;
  5. use App\Repository\App\TipoCategoriaRepository;
  6. use App\Services\API\CategoriaService;
  7. use App\Services\API\TramiteService;
  8. use App\Utils\APIResponse;
  9. use App\Utils\CommonFunctions;
  10. use Exception;
  11. use OpenApi\Annotations as OA;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. /**
  16.  * @Route("/categorias")
  17.  */
  18. class CategoriaController extends BaseController
  19. {
  20.     /**
  21.      * @Route("", name="get_categorias", methods={"GET"})
  22.      * @param Request $request
  23.      * @param CategoriaService $categoriaService
  24.      * @param TipoCategoriaRepository $tipoCategoriaRepository
  25.      * @return Response
  26.      *
  27.      * @OA\Get(
  28.      *     path="/api/v1/categorias",
  29.      *     summary="Obtener todas las categorias",
  30.      *     @OA\Response(
  31.      *         response=200,
  32.      *         description="Response",
  33.      *         @OA\MediaType(
  34.      *             mediaType="application/json",
  35.      *             @OA\Schema(
  36.      *                 @OA\Property(property="status", type="integer"),
  37.      *                 @OA\Property(property="errors", type="array", @OA\Items(type="string")),
  38.      *                 @OA\Property(property="content", type="object")
  39.      *            )
  40.      *        )
  41.      *    )
  42.      * )
  43.      */
  44.     public function categoriasAction(Request $requestCategoriaService $categoriaServiceTipoCategoriaRepository $tipoCategoriaRepository)
  45.     {
  46.         $statusCode APIResponse::$SUCCESS;
  47.         $status APIResponse::$SUCCESS;
  48.         $errors = array();
  49.         $result null;
  50.         try {
  51.             $tipoCategoria $tipoCategoriaRepository->findOneBy(['nombre' => 'Tramites y servicios']);
  52.             $result $categoriaService->getCategoriasByTipoCategoria($tipoCategoria);
  53.         }
  54.         catch (Exception $e) {
  55.             $statusCode APIResponse::$INTERNAL_ERROR;
  56.             $status APIResponse::$INTERNAL_ERROR;
  57.             $errors = array($e->getMessage());
  58.             $errorInfo CommonFunctions::getErrorException($e);
  59.             $this->logInteractionService->addErrorLog(
  60.                 LogInteraction::$LIST,
  61.                 CommonFunctions::getClassMethod(__METHOD__),
  62.                 $e->getMessage(),
  63.                 $errorInfo
  64.             );
  65.         }
  66.         return $this->generateJsonResponse($result$statusCode$status$errors);
  67.     }
  68.     /**
  69.      * @Route("/sub-categorias-grupos/{categoriaId}", name="get_sub_categorias_grupos", methods={"GET"})
  70.      * @param Request $request
  71.      * @param CategoriaService $categoriaService
  72.      * @param $categoriaId
  73.      * @return Response
  74.      *
  75.      * @OA\Get(
  76.      *     path="/api/v1/categorias/sub-categorias-grupos/{categoriaId}",
  77.      *     summary="Obtener sub categorias y grupos",
  78.      *     @OA\Response(
  79.      *         response=200,
  80.      *         description="Response",
  81.      *         @OA\MediaType(
  82.      *             mediaType="application/json",
  83.      *             @OA\Schema(
  84.      *                 @OA\Property(property="status", type="integer"),
  85.      *                 @OA\Property(property="errors", type="array", @OA\Items(type="string")),
  86.      *                 @OA\Property(property="content", type="object")
  87.      *            )
  88.      *        )
  89.      *    )
  90.      * )
  91.      */
  92.     public function subCategoriasGruposAction(Request $requestCategoriaService $categoriaService$categoriaId)
  93.     {
  94.         $statusCode APIResponse::$SUCCESS;
  95.         $status APIResponse::$SUCCESS;
  96.         $errors = array();
  97.         $result null;
  98.         try {
  99.             $result $categoriaService->getSubCategoriasGrupos($categoriaId);
  100.         } catch (Exception $e) {
  101.             $statusCode APIResponse::$INTERNAL_ERROR;
  102.             $status APIResponse::$INTERNAL_ERROR;
  103.             $errors = array($e->getMessage());
  104.             $errorInfo CommonFunctions::getErrorException($e);
  105.             $this->logInteractionService->addErrorLog(
  106.                 LogInteraction::$LIST,
  107.                 CommonFunctions::getClassMethod(__METHOD__),
  108.                 $e->getMessage(),
  109.                 $errorInfo
  110.             );
  111.         }
  112.         return $this->generateJsonResponse($result$statusCode$status$errors);
  113.     }
  114.     /**
  115.      * @Route("/tramite/ficha-tramite/{id}", name="get_ficha", methods={"GET"})
  116.      * @param TramiteService $tramiteService
  117.      * @param $id
  118.      * @return Response
  119.      *
  120.      * @OA\Get(
  121.      *     path="/api/v1/categorias/tramite/ficha-tramite/{id}",
  122.      *     summary="Obtiene la ficha de un trĂ¡mite para mostrarla en el front",
  123.      *     @OA\Response(
  124.      *         response=200,
  125.      *         description="Response",
  126.      *         @OA\MediaType(
  127.      *             mediaType="application/json",
  128.      *             @OA\Schema(
  129.      *                 @OA\Property(property="status", type="integer"),
  130.      *                 @OA\Property(property="errors", type="array", @OA\Items(type="string")),
  131.      *                 @OA\Property(property="content", type="object")
  132.      *            )
  133.      *        )
  134.      *    )
  135.      * )
  136.      */
  137.     public function getFichaAction(TramiteService $tramiteService$id)
  138.     {
  139.         $statusCode APIResponse::$SUCCESS;
  140.         $status APIResponse::$SUCCESS;
  141.         $errors = array();
  142.         $result null;
  143.         try {
  144.             $result $tramiteService->obtenerFichaTramite($id);
  145.         } catch (Exception $e) {
  146.             $statusCode APIResponse::$INTERNAL_ERROR;
  147.             $status APIResponse::$INTERNAL_ERROR;
  148.             $errors = array($e->getMessage());
  149.             $errorInfo CommonFunctions::getErrorException($e);
  150.             $this->logInteractionService->addErrorLog(
  151.                 LogInteraction::$LIST,
  152.                 CommonFunctions::getClassMethod(__METHOD__),
  153.                 $e->getMessage(),
  154.                 $errorInfo
  155.             );
  156.         }
  157.         return $this->generateJsonResponse($result$statusCode$status$errors);
  158.     }
  159. }