From: maxious Date: Fri, 15 Jul 2011 04:19:31 +0000 Subject: Start of service alerts API X-Git-Url: http://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=479eca81a695c0d8d290cbc523ff9bdaf39a8864 --- Start of service alerts API --- --- a/include/db/servicealert-dao.inc.php +++ b/include/db/servicealert-dao.inc.php @@ -12,4 +12,33 @@ } return $query->fetch(PDO::FETCH_ASSOC); } + +function getCurrentAlerts() { + global $conn; + $query = "SELECT * from servicealerts_alerts"; + debug($query, "database"); + $query = $conn->prepare($query); + //if ($stop_sequence != "") $query->bindParam(":stop_sequence", $stop_sequence); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + return Array(); + } + return $query->fetchAll(); +} +function getInformedAlerts($id,$filter_class,$filter_id) { + + global $conn; + $query = "SELECT * from servicealerts_informed where servicealert_id = :id"; + debug($query, "database"); + $query = $conn->prepare($query); + $query->bindParam(":id", $id); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + return Array(); + } + return $query->fetchAll(); +} + ?> --- a/servicealerts_api.php +++ b/servicealerts_api.php @@ -6,48 +6,43 @@ - add,remove,patch - stop - trip + - network - patterns (WHERE=) - route (short_name or route_id) - street - stop - trip */ -/* header { - gtrtfs_version: "1" - timestamp: 1307926866 +$return = Array(); +$return['header']['gtrtfs_version'] = "1"; +$return['header']['timestamp'] = time(); +$return['entities'] = Array(); +foreach(getCurrentAlerts() as $alert) { + $informedEntities = getInformedAlerts($alert['id'],$filter_class,$filter_id); + if (sizeof($informedEntities) >0) { + $entity = Array(); + $entity['id'] = $alert['id']; + $entity['alert']['active_period']['start'] = $alert['start']; + $entity['alert']['active_period']['start'] = $alert['end']; + $entity['alert']['url']['translation'] = $alert['url']; + $entity['alert']['description']['translation'] = $alert['description']; + + foreach ($informedEntities as $informedEntity) { + $informed = Array(); + $informed[$informedEntity['informed_class']."_id"] = $informedEntity['informed_id']; + if ($informedEntity['informed_action'] != "") $informed["x-action"] = $informedEntity['informed_action']; + //$informed[$informedEntity['class']."_type"] = $informedEntity['type']; + $entity['informed'][] = $informed; + } + $return['entities'][] = $entity; + } } -entity { - id: "21393" - alert { - active_period { - start: 1307955600 - end: 1307988000 - } - informed_entity { - route_id: "100" - route_type: 1 - } - url { - translation { - text: "http://trimet.org/alerts/" - } - } - description_text { - translation { - text: "Rose Festival fleet departures will cause bridge lifts until around 10 a.m. Expect delays." - } - } - } -}*/ -$return = Array(); - -header('Content-Type: text/javascript; charset=utf8'); +//header('Content-Type: text/javascript; charset=utf8'); // header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); header('Access-Control-Max-Age: 3628800'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); if (isset($_GET['callback'])) { $json = '(' . json_encode($return) . ');'; //must wrap in parens and end with semicolon - print_r($_GET['callback'] . $json); //callback is prepended for json-p - + //print_r($_GET['callback'] . $json); //callback is prepended for json-p } else echo json_encode($return); ?>