src/Controller/Api/MediaGameController.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Services\Api\MediaGameManager;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  6. use Symfony\Component\HttpFoundation\File\UploadedFile as FileUploadedFile;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class MediaGameController extends ApiController
  11. {
  12.   /** @var MediaGameManager $mediaGameManager */
  13.   protected $mediaGameManager;
  14.   /**
  15.    * @param MediaGameManager $mediaGameManager
  16.    */
  17.   public function __construct(EntityManagerInterface $emParameterBagInterface $parameterBagMediaGameManager $mediaGameManager)
  18.   {
  19.     parent::__construct($em$parameterBag);
  20.     $this->mediaGameManager $mediaGameManager;
  21.   }
  22.   /**
  23.    * @param Request $request
  24.    * @return JsonResponse
  25.    *
  26.    * @Route("/media_game/add", name="api_media_game_add", methods={"POST"})
  27.    */
  28.   public function add(Request $request)
  29.   {
  30.     $request $this->transformJsonBody($request);
  31.     $data $this->getDataFromRequest($request);
  32.     $response $this->mediaGameManager->add($data$request);
  33.     return $this->response($response);
  34.   }
  35.   /**
  36.    * @param Request $request
  37.    * @return JsonResponse
  38.    *
  39.    * @Route("/media_game/delete/{id}", name="api_media_game_delete", methods={"POST"})
  40.    */
  41.   public function delete(Int $id)
  42.   {
  43.     $folder $this->getParameter("app.path.game_files");
  44.     $response $this->mediaGameManager->delete($id$folder);
  45.     return $this->response($response);
  46.   }
  47.   /**
  48.    * @param Request $request
  49.    * @return JsonResponse
  50.    *
  51.    * @Route("/media_game/{game_id}", name="api_media_game_get", methods={"POST"})
  52.    */
  53.   public function getMediaGame(Request $requestInt $game_id)
  54.   {
  55.     $prefix $this->getParameter("app.path.game_files");
  56.     $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  57.     $folder $baseurl $prefix "/";
  58.     $response $this->mediaGameManager->getMediaGame($request$game_id$folder);
  59.     return $this->response($response);
  60.   }
  61.   protected function getDataFromRequest(Request $request)
  62.   {
  63.     $data = [
  64.       "game_id" => $request->get('game_id'),
  65.     ];
  66.     $image $request->files->get('file');
  67.     if (!empty($image)) {
  68.       $data["file"] = new FileUploadedFile($image->getPathname(), $image->getClientOriginalName());
  69.       $data['file_size'] = intval($image->getSize());
  70.     }
  71.     return $data;
  72.   }
  73. }