src/Controller/Index/MeasurementController.php line 92

Open in your IDE?
  1. <?php
  2. /**
  3.  * @license Silk Software House
  4.  */
  5. namespace App\Controller\Index;
  6. use App\Assembler\DataSampleAssembler;
  7. use App\DataBridge\DataAbstraction;
  8. use App\DataBridge\DataTransformers\TemperatureTransformer;
  9. use App\Entity\Measurement;
  10. use App\Form\UserInterface\ChartType;
  11. use App\Helpers\DatabaseAwareTrait;
  12. use App\Helpers\ImportFromFileTrait;
  13. use App\Service\ImportFromWinApp\ImportMeasurementService;
  14. use FOS\RestBundle\Controller\Annotations\Route;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. use Symfony\Component\HttpFoundation\RedirectResponse;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  19. /**
  20.  * todo: it is Proof-of-concept for drawing of charts controller.
  21.  * Class IndexController
  22.  */
  23. class MeasurementController extends AbstractController
  24. {
  25.     use DatabaseAwareTrait;
  26.     use ImportFromFileTrait;
  27.     const TIME_FORMAT 'Y-m-d H:i:s';
  28.     private $chartDataAbstraction;
  29.     private $importMeasurementService;
  30.     private $dataSampleAssembler;
  31.     /**
  32.      *
  33.      * IndexController constructor.
  34.      *
  35.      * todo: consider moving to trait wither
  36.      * todo: import is testing purpose only here.
  37.      * todo: remove $appFixtures
  38.      *
  39.      * @param DataAbstraction          $chartDataAbstraction
  40.      * @param ImportMeasurementService $importMeasurementService
  41.      * @param DataSampleAssembler      $dataSampleAssembler
  42.      */
  43.     public function __construct(DataAbstraction $chartDataAbstractionImportMeasurementService $importMeasurementServiceDataSampleAssembler $dataSampleAssembler)
  44.     {
  45.         $this->chartDataAbstraction $chartDataAbstraction;
  46.         $this->importMeasurementService $importMeasurementService;
  47.         $this->dataSampleAssembler $dataSampleAssembler;
  48.     }
  49.     /**
  50.      * @Route("/measurement/{id}", name="chart_ss")
  51.      *
  52.      * @param $id
  53.      *
  54.      * @return Response
  55.      */
  56.     public function measurement($id 1)
  57.     {
  58.         /** @var Measurement $measurement */
  59.         $measurement $this->getRepository(Measurement::class)->find($id);
  60.         if (null === $measurement) {
  61.             throw new NotFoundHttpException(sprintf('Measurement with id %s was not found.'$id));
  62.         }
  63.         //$chart = $this->chartDataAbstraction->setMeasurement($measurement)->getDataArray();
  64.         $form $this->createForm(ChartType::class);
  65.         $dataAbstraction $this->chartDataAbstraction
  66.             ->setCalculationModel(new TemperatureTransformer())
  67.             ->setMeasurement($measurement);
  68.         $form->get('chartData')->setData($dataAbstraction->getJson());
  69.         $form->get('title')->setData($this->chartDataAbstraction->getTitle());
  70.         return $this->render(
  71.         //'example_chart_scroll.html.twig',
  72.             'index/example_chart_canvas.html.twig',
  73.             ['form' => $form->createView()]
  74.         );
  75.     }
  76.     /**
  77.      * @Route("/", name="index")
  78.      *
  79.      * @return RedirectResponse
  80.      */
  81.     public function index()
  82.     {
  83.         return $this->redirectToRoute('panel_devices');
  84.     }
  85. }