add repository finders and update controllers to load data from database
This commit is contained in:
parent
38b433a63c
commit
aa2b84d30e
|
@ -6,91 +6,83 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use App\Repository\TemperatureRepository;
|
||||||
|
use App\Repository\HygrometryRepository;
|
||||||
|
|
||||||
class MonitoringApiController extends AbstractController
|
class MonitoringApiController extends AbstractController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @Route("/api/monitoring/temperature", name="api_monitoring_temperature", methods={"GET"})
|
* @Route("/api/monitoring/temperature", name="api_monitoring_temperature", methods={"GET"})
|
||||||
*/
|
*/
|
||||||
public function temperature(Request $request)
|
public function temperature(Request $request, TemperatureRepository $repository)
|
||||||
{
|
{
|
||||||
if ($request->isMethod('POST')) {
|
$labels = [];
|
||||||
} else {
|
$datasets = [];
|
||||||
$labels = [];
|
$entities = $repository->findByDateRange(new \DateTime('now - 1 day'), new \DateTime('now'));
|
||||||
$datasets = [];
|
|
||||||
|
|
||||||
$dateFrom = time() - 3600 * 24;
|
$line = [
|
||||||
$dateTo = time();
|
'label' => 'Relevés de la température',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(255, 205, 86)',
|
||||||
|
'backgroundColor' => 'rgb(255, 205, 86)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
$line = [
|
$line2 = [
|
||||||
'label' => 'Relevés de la température',
|
'label' => 'Valeur idéale',
|
||||||
'data' => [],
|
'data' => [],
|
||||||
'borderColor' => 'rgb(255, 205, 86)',
|
'borderColor' => 'rgb(200, 200, 200)',
|
||||||
'backgroundColor' => 'rgb(255, 205, 86)',
|
'backgroundColor' => 'rgb(200, 200, 200)',
|
||||||
'fill' => false,
|
'fill' => false,
|
||||||
];
|
];
|
||||||
|
|
||||||
$line2 = [
|
foreach ($entities as $entity) {
|
||||||
'label' => 'Valeur idéale',
|
$labels[] = $entity->getDate()->format('H:i');
|
||||||
'data' => [],
|
$line['data'][] = $entity->getValue();
|
||||||
'borderColor' => 'rgb(200, 200, 200)',
|
$line2['data'][] = 27;
|
||||||
'backgroundColor' => 'rgb(200, 200, 200)',
|
|
||||||
'fill' => false,
|
|
||||||
];
|
|
||||||
|
|
||||||
for ($u = $dateFrom; $u <= $dateTo; $u+= 600) {
|
|
||||||
$labels[] = date('H:i', $u);
|
|
||||||
$line['data'][] = mt_rand(22, 24);
|
|
||||||
$line2['data'][] = 23;
|
|
||||||
}
|
|
||||||
|
|
||||||
$datasets[] = $line;
|
|
||||||
$datasets[] = $line2;
|
|
||||||
|
|
||||||
return $this->createGraphResponse($labels, $datasets);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$datasets[] = $line;
|
||||||
|
$datasets[] = $line2;
|
||||||
|
|
||||||
|
return $this->createGraphResponse($labels, $datasets);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/api/monitoring/hygrometry", name="api_monitoring_hygrometry", methods={"GET"})
|
* @Route("/api/monitoring/hygrometry", name="api_monitoring_hygrometry", methods={"GET"})
|
||||||
*/
|
*/
|
||||||
public function hygrometry(Request $request)
|
public function hygrometry(Request $request, HygrometryRepository $repository)
|
||||||
{
|
{
|
||||||
if ($request->isMethod('POST')) {
|
$labels = [];
|
||||||
} else {
|
$datasets = [];
|
||||||
$labels = [];
|
$entities = $repository->findByDateRange(new \DateTime('now - 1 day'), new \DateTime('now'));
|
||||||
$datasets = [];
|
|
||||||
|
|
||||||
$dateFrom = time() - 3600 * 24;
|
$line = [
|
||||||
$dateTo = time();
|
'label' => 'Niveau d\'humidité de l\'atmosphère en %',
|
||||||
|
'data' => [],
|
||||||
|
'borderColor' => 'rgb(54, 162, 235)',
|
||||||
|
'backgroundColor' => 'rgb(54, 162, 235)',
|
||||||
|
'fill' => false,
|
||||||
|
];
|
||||||
|
|
||||||
$line = [
|
$line2 = [
|
||||||
'label' => 'Niveau d\'humidité de l\'atmosphère en %',
|
'label' => 'Valeur maximale',
|
||||||
'data' => [],
|
'data' => [],
|
||||||
'borderColor' => 'rgb(54, 162, 235)',
|
'borderColor' => 'rgb(200, 200, 200)',
|
||||||
'backgroundColor' => 'rgb(54, 162, 235)',
|
'backgroundColor' => 'rgb(200, 200, 200)',
|
||||||
'fill' => false,
|
'fill' => false,
|
||||||
];
|
];
|
||||||
|
|
||||||
$line2 = [
|
foreach ($entities as $entity) {
|
||||||
'label' => 'Valeur idéale',
|
$labels[] = $entity->getDate()->format('H:i');
|
||||||
'data' => [],
|
$line['data'][] = $entity->getValue();
|
||||||
'borderColor' => 'rgb(200, 200, 200)',
|
$line2['data'][] = 50;
|
||||||
'backgroundColor' => 'rgb(200, 200, 200)',
|
|
||||||
'fill' => false,
|
|
||||||
];
|
|
||||||
|
|
||||||
for ($u = $dateFrom; $u <= $dateTo; $u+= 600) {
|
|
||||||
$labels[] = date('H:i', $u);
|
|
||||||
$line['data'][] = mt_rand(50, 55);
|
|
||||||
$line2['data'][] = 53;
|
|
||||||
}
|
|
||||||
|
|
||||||
$datasets[] = $line;
|
|
||||||
$datasets[] = $line2;
|
|
||||||
|
|
||||||
return $this->createGraphResponse($labels, $datasets);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$datasets[] = $line;
|
||||||
|
$datasets[] = $line2;
|
||||||
|
|
||||||
|
return $this->createGraphResponse($labels, $datasets);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function createGraphResponse(array $labels, array $datasets): JsonResponse
|
protected function createGraphResponse(array $labels, array $datasets): JsonResponse
|
||||||
|
|
|
@ -19,32 +19,16 @@ class HygrometryRepository extends ServiceEntityRepository
|
||||||
parent::__construct($registry, Hygrometry::class);
|
parent::__construct($registry, Hygrometry::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
public function findByDateRange(\DateTime $fromDate, \DateTime $toDate)
|
||||||
// * @return Hygrometry[] Returns an array of Hygrometry objects
|
|
||||||
// */
|
|
||||||
/*
|
|
||||||
public function findByExampleField($value)
|
|
||||||
{
|
{
|
||||||
return $this->createQueryBuilder('h')
|
return $this->createQueryBuilder('h')
|
||||||
->andWhere('h.exampleField = :val')
|
->orderBy('h.date')
|
||||||
->setParameter('val', $value)
|
->andWhere('h.date >= :fromDate')
|
||||||
->orderBy('h.id', 'ASC')
|
->andWhere('h.date <= :toDate')
|
||||||
->setMaxResults(10)
|
->setParameter('fromDate', $fromDate->format('Y-m-d H:i:s'))
|
||||||
|
->setParameter('toDate', $toDate->format('Y-m-d H:i:s'))
|
||||||
->getQuery()
|
->getQuery()
|
||||||
->getResult()
|
->getResult()
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
public function findOneBySomeField($value): ?Hygrometry
|
|
||||||
{
|
|
||||||
return $this->createQueryBuilder('h')
|
|
||||||
->andWhere('h.exampleField = :val')
|
|
||||||
->setParameter('val', $value)
|
|
||||||
->getQuery()
|
|
||||||
->getOneOrNullResult()
|
|
||||||
;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,32 +19,16 @@ class TemperatureRepository extends ServiceEntityRepository
|
||||||
parent::__construct($registry, Temperature::class);
|
parent::__construct($registry, Temperature::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
public function findByDateRange(\DateTime $fromDate, \DateTime $toDate)
|
||||||
// * @return Temperature[] Returns an array of Temperature objects
|
|
||||||
// */
|
|
||||||
/*
|
|
||||||
public function findByExampleField($value)
|
|
||||||
{
|
{
|
||||||
return $this->createQueryBuilder('t')
|
return $this->createQueryBuilder('t')
|
||||||
->andWhere('t.exampleField = :val')
|
->orderBy('t.date')
|
||||||
->setParameter('val', $value)
|
->andWhere('t.date >= :fromDate')
|
||||||
->orderBy('t.id', 'ASC')
|
->andWhere('t.date <= :toDate')
|
||||||
->setMaxResults(10)
|
->setParameter('fromDate', $fromDate->format('Y-m-d H:i:s'))
|
||||||
|
->setParameter('toDate', $toDate->format('Y-m-d H:i:s'))
|
||||||
->getQuery()
|
->getQuery()
|
||||||
->getResult()
|
->getResult()
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
public function findOneBySomeField($value): ?Temperature
|
|
||||||
{
|
|
||||||
return $this->createQueryBuilder('t')
|
|
||||||
->andWhere('t.exampleField = :val')
|
|
||||||
->setParameter('val', $value)
|
|
||||||
->getQuery()
|
|
||||||
->getOneOrNullResult()
|
|
||||||
;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue