src/Controller/Api/DocumentController.php line 64

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\Convocatoria;
  4. use App\Entity\Customer;
  5. use App\Entity\Player;
  6. use App\Entity\Document;
  7. use App\Entity\SeasonPlayer;
  8. use App\Entity\TrainingAsist;
  9. use App\Helper\UploadedBase64File;
  10. use App\Repository\ConvocatoriaRepository;
  11. use App\Repository\TrainingAsistRepository;
  12. use App\Repository\PlayerRepository;
  13. use App\Services\Api\DocumentManager;
  14. use App\Services\Api\CustomerManager;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  17. use Symfony\Component\HttpFoundation\JsonResponse;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Symfony\Contracts\Translation\TranslatorInterface;
  22. use Psr\Log\LoggerInterface;
  23. class DocumentController extends ApiController
  24. {
  25.   /** @var CustomerManager $customerManager */
  26.   protected $customerManager;
  27.   /**
  28.    * @param CustomerManager $customerManager
  29.    */
  30.   public function __construct(EntityManagerInterface $emParameterBagInterface $parameterBagCustomerManager $customerManager)
  31.   {
  32.     parent::__construct($em$parameterBag);
  33.     $this->customerManager $customerManager;
  34.   }
  35.   /**
  36.    * @param Request $request
  37.    * @return JsonResponse
  38.    *
  39.    * @Route("/document/add", name="api_document_add", methods={"POST"})
  40.    */
  41.   public function addDocument(Request $request)
  42.   {
  43.     $request $this->transformJsonBody($request);
  44.     $data $this->getDataFromRequest($request);
  45.     $response $this->customerManager->addDocument($data$request);
  46.     $this->setStatusCode($response["code"]);
  47.     return $this->response($response);
  48.   }
  49.   /**
  50.    * @param Request $request
  51.    * @return JsonResponse
  52.    *
  53.    * @Route("/document/delete/{id}", name="api_document_delete", methods={"POST"})
  54.    */
  55.   public function deleteDocument($id)
  56.   {
  57.     $response $this->customerManager->deleteDocument($id);
  58.     $this->setStatusCode($response["code"]);
  59.     return $this->response($response);
  60.   }
  61.   /**
  62.    * @param Request $request
  63.    * @return JsonResponse
  64.    *
  65.    * @Route("/document/list", name="api_document_list", methods={"POST"})
  66.    */
  67.   public function listDocument(Request $requestLoggerInterface $logger)
  68.   {
  69.     $prefixFile $this->getParameter("app.path.document_images");
  70.     $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  71.     $documents = [];
  72.     /** @var Customer $customer */
  73.     /** @var Document $document */
  74.     $customer $this->getUser();
  75.     $logger->info('CUS ' $customer " " $customer->getId());
  76.     $filter = [
  77.       "customer" => $customer
  78.     ];
  79.     foreach ($this->em->getRepository(Document::class)->findBy($filter, ["id" => "DESC"])  as $document) {
  80.       $documents[] = [
  81.         "id" => $document->getId(),
  82.         "image" => !empty($document->getImage()) ? $baseurl $prefixFile "/" $document->getImage() : "",
  83.       ];
  84.     }
  85.     return $this->response($documents);
  86.   }
  87.   protected function getDataFromRequest(Request $request)
  88.   {
  89.     $data = [];
  90.     $image $request->get('image');
  91.     if (!empty($image))
  92.       $data["image"] = new UploadedBase64File($image$request->get('imageFilename'));
  93.     return $data;
  94.   }
  95. }