src/Controller/API/SponsorController.php line 44

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\Services\API\SponsorService;
  6. use App\Utils\APIResponse;
  7. use App\Utils\CommonFunctions;
  8. use Exception;
  9. use OpenApi\Annotations as OA;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. /**
  14.  * @Route("/sponsors")
  15.  */
  16. class SponsorController extends BaseController
  17. {
  18.     /**
  19.      * @Route("", name="get_sponsors", methods={"GET"})
  20.      * @param Request $request
  21.      * @param SponsorService $sponsorService
  22.      * @return Response
  23.      *
  24.      * @OA\Get(
  25.      *     path="/api/v1/sponsors",
  26.      *     summary="Obtener todos los sponsors activos",
  27.      *     @OA\Response(
  28.      *         response=200,
  29.      *         description="Response",
  30.      *         @OA\MediaType(
  31.      *             mediaType="application/json",
  32.      *             @OA\Schema(
  33.      *                 @OA\Property(property="status", type="integer"),
  34.      *                 @OA\Property(property="errors", type="array", @OA\Items(type="string")),
  35.      *                 @OA\Property(property="content", type="object")
  36.      *            )
  37.      *        )
  38.      *    )
  39.      * )
  40.      */
  41.     public function sponsorsAction(Request $requestSponsorService $sponsorService)
  42.     {
  43.         $statusCode APIResponse::$SUCCESS;
  44.         $status APIResponse::$SUCCESS;
  45.         $errors = array();
  46.         $result null;
  47.         try {
  48.             $result $sponsorService->getSponsors();
  49.         } catch (Exception $e) {
  50.             $statusCode APIResponse::$INTERNAL_ERROR;
  51.             $status APIResponse::$INTERNAL_ERROR;
  52.             $errors = array($e->getMessage());
  53.             $errorInfo CommonFunctions::getErrorException($e);
  54.             $this->logInteractionService->addErrorLog(
  55.                 LogInteraction::$LIST,
  56.                 CommonFunctions::getClassMethod(__METHOD__),
  57.                 $e->getMessage(),
  58.                 $errorInfo
  59.             );
  60.         }
  61.         return $this->generateJsonResponse($result$statusCode$status$errors);
  62.     }
  63.     /**
  64.      * @Route("/{id}", name="get_sponsor_by_id", methods={"GET"})
  65.      * @param int $id
  66.      * @param SponsorService $sponsorService
  67.      * @return Response
  68.      *
  69.      * @OA\Get(
  70.      *     path="/api/v1/sponsors/{id}",
  71.      *     summary="Obtener un sponsor por ID",
  72.      *     @OA\Parameter(
  73.      *         name="id",
  74.      *         in="path",
  75.      *         description="ID del sponsor",
  76.      *         required=true,
  77.      *         @OA\Schema(type="integer")
  78.      *     ),
  79.      *     @OA\Response(
  80.      *         response=200,
  81.      *         description="Response",
  82.      *         @OA\MediaType(
  83.      *             mediaType="application/json",
  84.      *             @OA\Schema(
  85.      *                 @OA\Property(property="status", type="integer"),
  86.      *                 @OA\Property(property="errors", type="array", @OA\Items(type="string")),
  87.      *                 @OA\Property(property="content", type="object")
  88.      *            )
  89.      *        )
  90.      *    ),
  91.      *     @OA\Response(
  92.      *         response=404,
  93.      *         description="Sponsor no encontrado"
  94.      *     )
  95.      * )
  96.      */
  97.     public function sponsorByIdAction(int $idSponsorService $sponsorService)
  98.     {
  99.         $statusCode APIResponse::$SUCCESS;
  100.         $status APIResponse::$SUCCESS;
  101.         $errors = array();
  102.         $result null;
  103.         
  104.         try {
  105.             $result $sponsorService->getSponsor($id);
  106.             
  107.             if (!$result) {
  108.                 $statusCode APIResponse::$NOT_FOUND;
  109.                 $status APIResponse::$NOT_FOUND;
  110.             }
  111.         } catch (Exception $e) {
  112.             $statusCode APIResponse::$INTERNAL_ERROR;
  113.             $status APIResponse::$INTERNAL_ERROR;
  114.             $errors = array($e->getMessage());
  115.             $errorInfo CommonFunctions::getErrorException($e);
  116.             $this->logInteractionService->addErrorLog(
  117.                 LogInteraction::$LIST,
  118.                 CommonFunctions::getClassMethod(__METHOD__),
  119.                 $e->getMessage(),
  120.                 $errorInfo
  121.             );
  122.         }
  123.         return $this->generateJsonResponse($result$statusCode$status$errors);
  124.     }
  125. }