src/Controller/Api/ReportTeamController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\Game;
  4. use App\Entity\TrainingAsist;
  5. use DateTime;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class ReportTeamController extends ApiController
  12. {
  13.   public function __construct(EntityManagerInterface $emParameterBagInterface $parameterBag)
  14.   {
  15.     parent::__construct($em$parameterBag);
  16.   }
  17.   /**
  18.    * @param Request $request
  19.    * @return JsonResponse
  20.    *
  21.    * @Route("/report_team/range", name="api_training_assit_report_range", methods={"POST"})
  22.    */
  23.   public function trainingAsistReport(Request $request)
  24.   {
  25.     $dateStart = new DateTime($request->get('date_start'));
  26.     $dateEnd = new DateTime($request->get('date_end'));
  27.     /** @var Customer $customer */
  28.     $customer $this->getUser();
  29.     $season $customer->getSeasonActive();
  30.     $filterTrainigns = [
  31.       [
  32.         "prop" => "date",
  33.         "comp" => ">=",
  34.         "val" => $dateStart->format('Y-m-d')
  35.       ],
  36.       [
  37.         "prop" => "date",
  38.         "comp" => "<=",
  39.         "val" => $dateEnd->format('Y-m-d')
  40.       ],
  41.       [
  42.         "prop" => "season",
  43.         "comp" => "=",
  44.         "val" => $season->getId()
  45.       ],
  46.     ];
  47.     $filterGame = [
  48.       [
  49.         "prop" => "date",
  50.         "comp" => ">=",
  51.         "val" => $dateStart->format('Y-m-d h:m:s')
  52.       ],
  53.       [
  54.         "prop" => "date",
  55.         "comp" => "<=",
  56.         "val" => $dateEnd->format('Y-m-d h:m:s')
  57.       ],
  58.       [
  59.         "prop" => "season",
  60.         "comp" => "=",
  61.         "val" => $season->getId()
  62.       ],
  63.     ];
  64.     //get categories
  65.     $listCategories $this->em->getRepository(TrainingAsist::class)->findByOwnCriteria($filterTrainigns);
  66.     $matches $this->em->getRepository(Game::class)->findByOwnCriteria($filterGame);
  67.     return $this->response([
  68.       'trainings' => count($listCategories),
  69.       'matches' => count($matches),
  70.     ]);
  71.   }
  72. }