<?php
|
$base_proxy = 'http://www.ttss.krakow.pl/internetservice/services';
|
$method = [
|
'/lookup/autocomplete/json' => [
|
'query' => function() { return TRUE; },
|
],
|
'/passageInfo/stopPassages/stop' => [
|
'stop' => 'ctype_alnum',
|
'mode' => function($mode) { return in_array($mode, ['arrival', 'departure']); },
|
],
|
'/routeInfo/routeStops' => [
|
'routeId' => 'ctype_alnum'
|
],
|
];
|
|
$path = $_SERVER['PATH_INFO'];
|
|
if(!isset($method[$path])) {
|
header('HTTP/1.1 403 Forbidden');
|
die('Forbidden');
|
}
|
|
$parameters = [];
|
|
foreach($method[$path] as $name => $filter) {
|
if(!isset($_GET[$name])) {
|
header('HTTP/1.1 403 Forbidden');
|
die('Parameter '.$name.' is required');
|
}
|
|
if(!$filter($_GET[$name])) {
|
header('HTTP/1.1 403 Forbidden');
|
die('Parameter '.$name.' has invalid value');
|
}
|
|
$parameters[$name] = $_GET[$name];
|
}
|
|
$result = @file_get_contents($base_proxy . $path . '?' . http_build_query($parameters));
|
if(!$result OR $http_response_header[0] != 'HTTP/1.1 200 OK') {
|
header('HTTP/1.1 503 Service Unavailable');
|
if(isset($http_response_header[0])) {
|
die($http_response_header[0]);
|
} else {
|
die('Unknown error');
|
}
|
}
|
|
header('Content-Type: application/json');
|
echo $result;
|