src/Controller/Api/StrategyController.php line 90

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\Strategy;
  4. use App\Services\Api\StrategyManager;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class StrategyController extends ApiController
  11. {
  12.   /** @var StrategyManager $strategyManager */
  13.   protected $strategyManager;
  14.   /**
  15.    * @param StrategyManager $strategyManager
  16.    */
  17.   public function __construct(EntityManagerInterface $emParameterBagInterface $parameterBagStrategyManager $strategyManager)
  18.   {
  19.     parent::__construct($em$parameterBag);
  20.     $this->strategyManager $strategyManager;
  21.   }
  22.   /**
  23.    * @param Request $request
  24.    * @return JsonResponse
  25.    *
  26.    * @Route("/strategy/add", name="api_strategy_add", methods={"POST"})
  27.    */
  28.   public function add(Request $request)
  29.   {
  30.     $request $this->transformJsonBody($request);
  31.     $data $this->getDataFromRequest($request);
  32.     $prefixFile $this->getParameter("app.path.strategies");
  33.     $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  34.     $urlImage $baseurl $prefixFile "/";
  35.     $response $this->strategyManager->add($data$urlImage);
  36.     return $this->response($response);
  37.   }
  38.   /**
  39.    * @param Request $request
  40.    * @return JsonResponse
  41.    *
  42.    * @Route("/strategy/update/{strategy}", name="api_strategy_update", methods={"POST"})
  43.    */
  44.   public function update(Request $requestStrategy $strategy)
  45.   {
  46.     $request $this->transformJsonBody($request);
  47.     $prefixFile $this->getParameter("app.path.strategies");
  48.     $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  49.     $urlImage $baseurl $prefixFile "/";
  50.     $data $this->getDataUpdateFromRequest($request);
  51.     $response $this->strategyManager->update($data$strategy$urlImage);
  52.     return $this->response($response);
  53.   }
  54.   /**
  55.    * @param Request $request
  56.    * @return JsonResponse
  57.    *
  58.    * @Route("/strategy/delete/{strategy}", name="api_strategy_delete", methods={"POST"})
  59.    */
  60.   public function delete(Strategy $strategy)
  61.   {
  62.     $response $this->strategyManager->delete($strategy);
  63.     return $this->response($response);
  64.   }
  65.   /**
  66.    * @param Request $request
  67.    * @return JsonResponse
  68.    *
  69.    * @Route("/strategy/list", name="api_strategy_list", methods={"POST"})
  70.    */
  71.   public function getList(Request $request)
  72.   {
  73.     $prefixFile $this->getParameter("app.path.strategies");
  74.     $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  75.     $urlImage $baseurl $prefixFile "/";
  76.     $response $this->strategyManager->list($urlImage);
  77.     return $this->response($response);
  78.   }
  79.   protected function getDataFromRequest(Request $request)
  80.   {
  81.     $data = [
  82.       "title" => $request->get('title'),
  83.       "description" => $request->get('description'),
  84.       "image" => $request->files->get('image'),
  85.     ];
  86.     return $data;
  87.   }
  88.   protected function getDataUpdateFromRequest(Request $request)
  89.   {
  90.     $data = [
  91.       "title" => $request->get('title'),
  92.       "description" => $request->get('description'),
  93.       "image" => $request->files->get('image'),
  94.     ];
  95.     return $data;
  96.   }
  97. }