Refactor route list
--- a/include/db/route-dao.inc.php
+++ b/include/db/route-dao.inc.php
@@ -1,78 +1,63 @@
<?php
function getRoute($routeID) {
-/*
- def handle_json_GET_routerow(self, params):
- schedule = self.server.schedule
- route = schedule.GetRoute(params.get('route', None))
- return [transitfeed.Route._FIELD_NAMES, route.GetFieldValuesTuple()]
-*/
+ $query = "Select * from routes where route_id = '$routeID' LIMIT 1";
+ debug($query,"database");
+ $result = pg_query($conn, $query);
+ if (!$result) {
+ databaseError(pg_result_error($result));
+ return Array();
+ }
+ return pg_fetch_assoc($result);
}
function getRoutes() {
-/* def handle_json_GET_routes(self, params):
- """Return a list of all routes."""
- schedule = self.server.schedule
- result = []
- for r in schedule.GetRouteList():
- servicep = None
- for t in schedule.GetTripList():
- if t.route_id == r.route_id:
- servicep = t.service_period
- break
- result.append( (r.route_id, r.route_short_name, r.route_long_name, servicep.service_id) )
- result.sort(key = lambda x: x[1:3])
- return result
-*/
+ global $conn;
+ $conditions = Array();
+ if ($timingPointsOnly) $conditions[] = "substr(stop_code,1,2) != 'Wj'";
+ if ($firstLetter != "") $conditions[] = "substr(stop_name,1,1) = '$firstLetter'";
+ $query = "Select * from routes";
+ if (sizeof($conditions) > 0) {
+ if (sizeof($conditions) > 1) {
+ $query .= " Where ".implode(" AND ",$conditions)." ";
+ }
+ else {
+ $query .= " Where ".$conditions[0]." ";
+ }
+ }
+ $query .= " order by route_short_name;";
+ debug($query,"database");
+ $result = pg_query($conn, $query);
+ if (!$result) {
+ databaseError(pg_result_error($result));
+ return Array();
+ }
+ return pg_fetch_all($result);
}
function findRouteByNumber($routeNumber) {
- /*
- def handle_json_GET_routesearch(self, params):
- """Return a list of routes with matching short name."""
- schedule = self.server.schedule
- routeshortname = params.get('routeshortname', None)
- result = []
- for r in schedule.GetRouteList():
- if r.route_short_name == routeshortname:
- servicep = None
- for t in schedule.GetTripList():
- if t.route_id == r.route_id:
- servicep = t.service_period
- break
- result.append( (r.route_id, r.route_short_name, r.route_long_name, servicep.service_id) )
- result.sort(key = lambda x: x[1:3])
- return result
- */
+ global $conn;
+ $query = "Select * from routes where route_short_name = '$routeNumber';";
+ debug($query,"database");
+ $result = pg_query($conn, $query);
+ if (!$result) {
+ databaseError(pg_result_error($result));
+ return Array();
+ }
+ return pg_fetch_all($result);
}
function getRouteNextTrip($routeID) {
- /*
- def handle_json_GET_routetrips(self, params):
- """ Get a trip for a route_id (preferablly the next one) """
- schedule = self.server.schedule
- query = params.get('route_id', None).lower()
- result = []
- for t in schedule.GetTripList():
- if t.route_id == query:
- try:
- starttime = t.GetStartTime()
- except:
- print "Error for GetStartTime of trip #" + t.trip_id + sys.exc_info()[0]
- else:
- cursor = t._schedule._connection.cursor()
- cursor.execute(
- 'SELECT arrival_secs,departure_secs FROM stop_times WHERE '
- 'trip_id=? ORDER BY stop_sequence DESC LIMIT 1', (t.trip_id,))
- (arrival_secs, departure_secs) = cursor.fetchone()
- if arrival_secs != None:
- endtime = arrival_secs
- elif departure_secs != None:
- endtime = departure_secs
- else:
- endtime =0
- result.append ( (starttime, t.trip_id, endtime) )
- return sorted(result, key=lambda trip: trip[2])
- */
-}
+ $query = "select * from routes join trips on trips.route_id = routes.route_id
+join stop_times on stop_times.trip_id = trips.trip_id where
+arrival_time > CURRENT_TIME and routes.route_id = '$routeID' order by
+arrival_time limit 1";
+ debug($query,"database");
+ $result = pg_query($conn, $query);
+ if (!$result) {
+ databaseError(pg_result_error($result));
+ return Array();
+ }
+ return pg_fetch_assoc($result); /*
+ }
?>
--- a/include/db/stop-dao.inc.php
+++ b/include/db/stop-dao.inc.php
@@ -1,9 +1,4 @@
<?php
-/* def StopZoneToTuple(stop):
- """Return tuple as expected by javascript function addStopMarkerFromList"""
- return (stop.stop_id, stop.stop_name, float(stop.stop_lat),
- float(stop.stop_lon), stop.location_type, stop.stop_code, stop.zone_id)
-*/
function getStop($stopID)
{
global $conn;
@@ -70,22 +65,17 @@
function getStopRoutes($stopID, $service_period)
{
if ($service_period == "") $service_period = service_period();
- /*
- def handle_json_GET_stoproutes(self, params):
- """Given a stop_id return all routes to visit the stop."""
- schedule = self.server.schedule
- stop = schedule.GetStop(params.get('stop', None))
- service_period = params.get('service_period', None)
- trips = stop.GetTrips(schedule)
- result = {}
- for trip in trips:
- route = schedule.GetRoute(trip.route_id)
- if service_period == None or trip.service_id == service_period:
- if not route.route_short_name+route.route_long_name+trip.service_id in result:
- result[route.route_short_name+route.route_long_name+trip.service_id] = (route.route_id, route.route_short_name, route.route_long_name, trip.trip_id, trip.service_id)
- return result
- */
-}
+ global $conn;
+ $query = "SELECT service_id,trips.route_id,route_short_name,route_long_name
+FROM stop_times join trips on trips.trip_id =
+stop_times.trip_id join routes on trips.route_id = routes.route_id WHERE stop_id = '$stopID' AND service_id='$service_period'";
+ debug($query,"database");
+ $result = pg_query($conn, $query);
+ if (!$result) {
+ databaseError(pg_result_error($result));
+ return Array();
+ }
+ return pg_fetch_all($result);}
function getStopTrips($stopID, $service_period = "")
{
if ($service_period == "") $service_period = service_period();