src/Controller/Api/SeasonController.php line 110

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\Customer;
  4. use App\Entity\Game;
  5. use App\Helper\UploadedBase64File;
  6. use App\Services\Api\CustomerManager;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. class SeasonController extends ApiController
  15. {
  16.   /** @var CustomerManager $customerManager */
  17.   protected $customerManager;
  18.   /**
  19.    * @param CustomerManager $customerManager
  20.    */
  21.   public function __construct(EntityManagerInterface $emParameterBagInterface $parameterBagCustomerManager $customerManager)
  22.   {
  23.     parent::__construct($em$parameterBag);
  24.     $this->customerManager $customerManager;
  25.   }
  26.   /**
  27.    * @param Request $request
  28.    * @return JsonResponse
  29.    *
  30.    * @Route("/season/list", name="api_season_list", methods={"POST"})
  31.    */
  32.   public function listSeason(Request $request)
  33.   {
  34.     $request $this->transformJsonBody($request);
  35.     $seasons = [];
  36.     $active 0;
  37.     /** @var Customer $customer */
  38.     $customer $this->getUser();
  39.     $i 0;
  40.     foreach ($customer->getSeason() as $season) {
  41.       if ($season->getIsActive()) {
  42.         $imageTeam $season->getTeam()->getImage();
  43.         $prefixFile $this->getParameter("app.path.customer_images");
  44.         $baseurl $request->getScheme() . '://' $request->getHttpHost() . $request->getBasePath();
  45.         $imagePath = !empty($imageTeam) ? $baseurl $prefixFile "/" $imageTeam "";
  46.         $seasons[] = [
  47.           "id" => $season->getId(),
  48.           "year" => $season->getYear(),
  49.           "text" => $season->getYear() . " / " . ($season->getYear() + 1),
  50.           "teamName" => $season->getTeam()->getName(),
  51.           "teamLogo" => $imagePath,
  52.         ];
  53.         if (!empty($customer->getSeasonActive()) && $season->getId() == $customer->getSeasonActive()->getId())
  54.           $active $i;
  55.         $i++;
  56.       }
  57.     }
  58.     return $this->response(["seasons" => $seasons"active" => $active]);
  59.   }
  60.   /**
  61.    * @param Request $request
  62.    * @return JsonResponse
  63.    *
  64.    * @Route("/season/add", name="api_season_add", methods={"POST"})
  65.    */
  66.   public function addSeason(Request $request)
  67.   {
  68.     $request $this->transformJsonBody($request);
  69.     $data $this->getDataFromRequest($request);
  70.     $response $this->customerManager->addSeason($data$request);
  71.     $this->setStatusCode($response["code"]);
  72.     return $this->response($response);
  73.   }
  74.   /**
  75.    * @param Request $request
  76.    * @return JsonResponse
  77.    *
  78.    * @Route("/season/secondary/add", name="api_season_secondary_add", methods={"POST"})
  79.    */
  80.   public function addSecondarySeason(Request $request)
  81.   {
  82.     $request $this->transformJsonBody($request);
  83.     $data $this->getDataFromRequest($request);
  84.     $response $this->customerManager->addSecondarySeason($data);
  85.     $this->setStatusCode($response["code"]);
  86.     return $this->response($response);
  87.   }
  88.   /**
  89.    * @param Request $request
  90.    * @return JsonResponse
  91.    *
  92.    * @Route("/season/change", name="api_season_change", methods={"POST"})
  93.    */
  94.   public function changeSeason(Request $request)
  95.   {
  96.     $request $this->transformJsonBody($request);
  97.     $season $request->get('season');
  98.     $response $this->customerManager->changeSeason($season$request);
  99.     $this->setStatusCode($response["code"]);
  100.     return $this->response($response);
  101.   }
  102.   /**
  103.    * @param Request $request
  104.    * @return JsonResponse
  105.    *
  106.    * @Route("/profile/password", name="api_profile_password", methods={"POST"})
  107.    */
  108.   public function profilePassword(Request $request)
  109.   {
  110.     $data = [
  111.       "plainPassword" => $request->get('password'),
  112.     ];
  113.     $response $this->customerManager->setPassword($data);
  114.     $this->setStatusCode($response["code"]);
  115.     return $this->response($response);
  116.   }
  117.   /**
  118.    * @param Request $request
  119.    * @return JsonResponse
  120.    *
  121.    * @Route("/season/update_config", name="api_season_update_config", methods={"POST"})
  122.    */
  123.   public function configSeason(Request $request)
  124.   {
  125.     $request $this->transformJsonBody($request);
  126.     $data $this->getDataFromRequest($request);
  127.     $response $this->customerManager->configSeason($data$request);
  128.     $this->setStatusCode($response["code"]);
  129.     return $this->response($response);
  130.   }
  131.   /**
  132.    * @param Request $request
  133.    * @return JsonResponse
  134.    *
  135.    * @Route("/season/delete/{seasonId}", name="api_season_delete", methods={"POST"})
  136.    */
  137.   public function deleteSeason($seasonIdRequest $request)
  138.   {
  139.     $request $this->transformJsonBody($request);
  140.     $response $this->customerManager->deleteSeason($seasonId);
  141.     $this->setStatusCode($response["code"]);
  142.     return $this->response($response);
  143.   }
  144.   protected function getDataFromRequest(Request $request)
  145.   {
  146.     $data = [
  147.       "name" => $request->get('name'),
  148.       "surname" => $request->get('surname'),
  149.       "teamName" => $request->get('teamName'),
  150.       "teamCategory" => $request->get('teamCategory'''),
  151.       "season" => $request->get('season'),
  152.       "monthlyCost" => $request->get('monthlyCost'),
  153.       "kitPaymentCost" => $request->get('kitPaymentCost'),
  154.       "otherPaymentCost" => $request->get('otherPaymentCost'),
  155.       "plainPassword" => $request->get('password'),
  156.       "countryId" => $request->get('countryId'),
  157.       "typeSoccer" => $request->get('typeSoccer'),
  158.       "alignmentDefaultU7" => $request->get("alignmentDefaultU7"),
  159.       "alignmentDefaultU8" => $request->get("alignmentDefaultU8"),
  160.       "alignmentDefaultU11" => $request->get("alignmentDefaultU11"),
  161.       "dateOfBirth" => $request->get("dateOfBirth"),
  162.       "phone" => $request->get("phone"),
  163.       "stadiumName" => $request->get("stadiumName"),
  164.       "numberClubesLeague" => $request->get("numberClubesLeague"),
  165.     ];
  166.     $image $request->get('teamLogo');
  167.     if (!empty($image))
  168.       $data["teamLogo"] = new UploadedBase64File($image$request->get('teamLogoFilename'));
  169.     $image $request->get('trainerLogo');
  170.     if (!empty($image))
  171.       $data["trainerLogo"] = new UploadedBase64File($image$request->get('trainerLogoFilename'));
  172.     return $data;
  173.   }
  174. }