From 9624abc4feb9f202819cd8004e8560f2b90f2625 Mon Sep 17 00:00:00 2001 From: Aaron Parecki Date: Sun, 10 Jan 2016 10:02:14 -0800 Subject: [PATCH] refactor query route, include all data when format is not linestring --- compass/app/Http/Controllers/Api.php | 45 +++++++++++++++------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/compass/app/Http/Controllers/Api.php b/compass/app/Http/Controllers/Api.php index a4f9082..89ceceb 100644 --- a/compass/app/Http/Controllers/Api.php +++ b/compass/app/Http/Controllers/Api.php @@ -39,7 +39,7 @@ class Api extends BaseController if($request->input('tz')) { $tz = $request->input('tz'); } else { - $tz = 'America/Los_Angeles'; + $tz = 'UTC'; } if($date=$request->input('date')) { @@ -55,29 +55,30 @@ class Api extends BaseController $properties = []; $events = []; - foreach($results as $id=>$record) { - if(property_exists($record->data->properties, 'action')) { - $rec = $record->data; - $date = $record->date; - $rec->properties->unixtime = (int)$date->format('U'); - $events[] = $rec; - } else { - #$record->date->format('U.u'); - $locations[] = $record->data; - $props = $record->data->properties; - $date = $record->date; - $date->setTimeZone(new DateTimeZone($tz)); - $props->timestamp = $date->format('c'); - $props->unixtime = (int)$date->format('U'); - $properties[] = $props; - } - } - if($request->input('format') == 'linestring') { + foreach($results as $id=>$record) { + // When returning a linestring, separate out the "event" records from the "location" records + if(property_exists($record->data->properties, 'action')) { + $rec = $record->data; + # add a unixtime property + $rec->properties->unixtime = (int)$record->date->format('U'); + $events[] = $rec; + } else { + #$record->date->format('U.u'); + $locations[] = $record->data; + $props = $record->data->properties; + $date = $record->date; + $date->setTimeZone(new DateTimeZone($tz)); + $props->timestamp = $date->format('c'); + $props->unixtime = (int)$date->format('U'); + $properties[] = $props; + } + } + $linestring = array( 'type' => 'LineString', - 'coordinates' => array(), + 'coordinates' => [], 'properties' => $properties ); foreach($locations as $loc) { @@ -93,6 +94,10 @@ class Api extends BaseController ); } else { + foreach($results as $id=>$record) { + $locations[] = $record->data; + } + $response = [ 'locations' => $locations ];