Projekt

Obecné

Profil

Stáhnout (1.84 KB) Statistiky
| Větev: | Revize:
1 3fc08f2d vastja
<?php
2
3
namespace App\Controller;
4
5 03c02899 vastja
use App\Entity\DataSet;
6
use App\Form\Type\DataSetType;
7 3fc08f2d vastja
use App\OpenData\IOpenDataManager;
8 03c02899 vastja
use Symfony\Component\HttpFoundation\Request;
9 3fc08f2d vastja
use Symfony\Component\Routing\Annotation\Route;
10
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
11
12
class HeatmapController extends AbstractController {
13
    /**
14 c6708024 vastja
     * @Route("/heatmap", name="heatmap")
15 3fc08f2d vastja
     */
16 dfe43218 vastja
    public function index(Request $request, IOpenDataManager $manager) {
17 03c02899 vastja
        $dataSet = new DataSet();
18
19
        $form = $this->createForm(DataSetType::class, $dataSet);
20
        $form->handleRequest($request);
21
22
        if ($form->isSubmitted()) {
23
            $dataSet = $form->getData();
24 dfe43218 vastja
            $name = $manager->getXthAvailableCollectionByDay($dataSet->getType(), $dataSet->getDate());
25
            if (false == $manager->isCollectionAvailable($name, $dataSet->getDate())) {
26
                $form = $this->createForm(DataSetType::class, new DataSet());
27
            }
28 03c02899 vastja
        }
29
30
        return $this->render(
31
            'heatmap.html.twig',
32
            [
33
                'form' => $form->createView(),
34 a48642fb vastja
                'submitted' => $form->isSubmitted(),
35 64bc2934 vastja
                'data_to_display' => $dataSet,
36 03c02899 vastja
            ]
37
        );
38 3fc08f2d vastja
    }
39
40
    /**
41 64bc2934 vastja
     * @Route("heatmap/opendata/{name}/{date}/{time}", name="opendata")
42 3fc08f2d vastja
     */
43 64bc2934 vastja
    public function opendata(IOpenDataManager $manager, $name = 'NONE', $date = '01012020', $time = '1') {
44 3ae59f75 vastja
        return $this->json([
45
            'items' => $manager->getCollectionDataByName($name, $date, $time),
46
            'max' => $manager->getMaxCollectionNumberAtDay($name, $date),
47
        ]);
48 3fc08f2d vastja
    }
49 03c02899 vastja
50
    /**
51
     * @Route("heatmap/available/{date}", name="available")
52
     */
53
    public function availableDatasets(IOpenDataManager $manager, $date = '01012020') {
54
        return $this->json($manager->getAvailableCollectionsByDay($date));
55
    }
56 3fc08f2d vastja
}