diff options
author | Marcin Zelent <zelent.marcin@gmail.com> | 2018-03-16 17:48:44 +0100 |
---|---|---|
committer | Marcin Zelent <zelent.marcin@gmail.com> | 2018-03-16 17:48:44 +0100 |
commit | ed01011dfb563e7d8ab13b6a0718eed7bf857880 (patch) | |
tree | 104a22a75d287d0607668eea3177eec626ab3f80 /pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php | |
parent | 1d24e941dc7d9da10c9045203ae18f5234c774f5 (diff) |
Moved PHP website to separate directory.
Diffstat (limited to 'pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php')
-rw-r--r-- | pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php b/pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php new file mode 100644 index 0000000..4434d47 --- /dev/null +++ b/pollutometer-php/src/AppBundle/Controller/AllDataAverageController.php @@ -0,0 +1,66 @@ +<?php +namespace AppBundle\Controller; + +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Bundle\FrameworkBundle\Controller\Controller; + + +class AllDataAverageController extends Controller +{ + /** + * @Route("/AllDataAverage", name="AllDataAverage") + */ + + public function GetAllDataAverage() + { + // Get cURL resource + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, "https://pollutometerapi.azurewebsites.net/api/Readings"); + curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json')); // Assuming you're requesting JSON + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + // Send the request & save response to $resp + $resp = curl_exec($curl); + // Close request to clear up some resources + curl_close($curl); + + $data = json_decode($resp, true); + $readings = array(); + $results = array(); + + usort($data, function($a,$b){ + return $a['TimeStamp'] - $b['TimeStamp']; + }); + + foreach($data as $index => $item) + { + $data[$index]['TimeStamp'] = gmdate('d F l', $item['TimeStamp']); + $readings[$data[$index]['TimeStamp']][] = $data[$index]; + } + + foreach ($readings as $key => $item) + { + $gasAverage = array('Co' => 0, 'No' => 0, 'So' => 0); + foreach ($readings[$key] as $index => $values) + { + $gasAverage['Co'] += $readings[$key][$index]['Co']; + $gasAverage['No'] += $readings[$key][$index]['No']; + $gasAverage['So'] += $readings[$key][$index]['So']; + + if($index === count($readings[$key]) - 1) + { + $gasAverage['Co'] /= $index + 1; + $gasAverage['No'] /= $index + 1; + $gasAverage['So'] /= $index + 1; + } + $results[$key] = $gasAverage; + } + } + + $data = json_encode($results); + + $response = new Response($data); + $response->headers->set('Content-Type', 'application/json'); + return $response; + } +}
\ No newline at end of file |