Start of service alerts API
Start of service alerts API

<?php <?php
function getServiceOverride($date="") { function getServiceOverride($date="") {
global $conn; global $conn;
$query = "Select * from calendar_dates where date = :date and exception_type = '1' LIMIT 1"; $query = "Select * from calendar_dates where date = :date and exception_type = '1' LIMIT 1";
debug($query,"database"); debug($query,"database");
$query = $conn->prepare($query); // Create a prepared statement $query = $conn->prepare($query); // Create a prepared statement
$query->bindParam(":date", date("Ymd",($date != "" ? $date : time()))); $query->bindParam(":date", date("Ymd",($date != "" ? $date : time())));
$query->execute(); $query->execute();
if (!$query) { if (!$query) {
databaseError($conn->errorInfo()); databaseError($conn->errorInfo());
return Array(); return Array();
} }
return $query->fetch(PDO::FETCH_ASSOC); 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();
  }
   
?> ?>
<?php <?php
include ('include/common.inc.php'); include ('include/common.inc.php');
/* /*
also need last modified epoch of client gtfs also need last modified epoch of client gtfs
- add,remove,patch - add,remove,patch
- stop - stop
- trip - trip
  - network
- patterns (WHERE=) - patterns (WHERE=)
- route (short_name or route_id) - route (short_name or route_id)
- street - street
- stop - stop
- trip */ - trip */
/* header { $return = Array();
gtrtfs_version: "1" $return['header']['gtrtfs_version'] = "1";
timestamp: 1307926866 $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 { //header('Content-Type: text/javascript; charset=utf8');
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('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); // header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/');
header('Access-Control-Max-Age: 3628800'); header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
if (isset($_GET['callback'])) { if (isset($_GET['callback'])) {
$json = '(' . json_encode($return) . ');'; //must wrap in parens and end with semicolon $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); else echo json_encode($return);
?> ?>