From faad2aedb8955d747cb9cc48897eb4d39116b81e Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sun, 14 Apr 2019 09:52:00 +0000
Subject: [PATCH] Use === comparisons in XHR error handlers

---
 proxy.php |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/proxy.php b/proxy.php
index dad3670..e764cb6 100644
--- a/proxy.php
+++ b/proxy.php
@@ -1,4 +1,17 @@
 <?php
+function is_number($str) {
+	$str = (string)$str;
+
+	return
+		ctype_digit($str)
+		OR
+		(
+			substr($str, 0, 1) == '-'
+			AND
+			ctype_digit(substr($str, 1))
+		);
+}
+
 $base_proxy = 'http://www.ttss.krakow.pl/internetservice';
 $method = [
 	'/services/lookup/autocomplete/json' => [
@@ -7,6 +20,14 @@
 	'/services/passageInfo/stopPassages/stop' => [
 		'stop' => 'ctype_alnum',
 		'mode' => function($mode) { return in_array($mode, ['arrival', 'departure']); },
+		#'startTime' => 'ctype_digit',
+		#'timeFrame' => 'ctype_digit',
+	],
+	'/services/passageInfo/stopPassages/stopPoint' => [
+		'stopPoint' => 'is_number',
+		'mode' => function($mode) { return in_array($mode, ['arrival', 'departure']); },
+		#'startTime' => 'ctype_digit',
+		#'timeFrame' => 'ctype_digit',
 	],
 	'/services/tripInfo/tripPassages' => [
 		'tripId' => 'ctype_digit',
@@ -14,13 +35,45 @@
 		#'vehicleId' => 'ctype_digit',
 	],
 	'/services/routeInfo/routeStops' => [
-		'routeId' => 'ctype_alnum'
+		'routeId' => 'ctype_alnum',
+	],
+	'/services/stopInfo/stop' => [
+		'stop' => 'is_number',
+	],
+	'/services/stopInfo/stopPoint' => [
+		'stopPoint' => 'is_number',
+	],
+	
+	'/geoserviceDispatcher/services/stopinfo/stops' => [
+		'left' => 'is_number',
+		'bottom' => 'is_number',
+		'right' => 'is_number',
+		'top' => 'is_number',
+	],
+	'/geoserviceDispatcher/services/stopinfo/stopPoints' => [
+		'left' => 'is_number',
+		'bottom' => 'is_number',
+		'right' => 'is_number',
+		'top' => 'is_number',
+	],
+	'/geoserviceDispatcher/services/pathinfo/route' => [
+		'id' => 'is_number',
+		'direction' => 'is_number',
+	],
+	'/geoserviceDispatcher/services/pathinfo/vehicle' => [
+		'id' => 'is_number',
+	],
+	'/geoserviceDispatcher/services/vehicleinfo/vehicles' => [
+		'lastUpdate' => 'ctype_digit',
+		'positionType' => function($type) { return in_array($type, ['RAW', 'CORRECTED']); },
+		'colorType' => function($type) { return in_array($type, ['ROUTE_BASED']); },
 	],
 ];
 $rewrite = [
 	'/lookup/autocomplete/json' => '/services/lookup/autocomplete/json',
 	'/passageInfo/stopPassages/stop' => '/services/passageInfo/stopPassages/stop',
 	'/routeInfo/routeStops' => '/services/routeInfo/routeStops',
+	'/internetservice/geoserviceDispatcher/services/pathinfo/vehicle' => '/geoserviceDispatcher/services/pathinfo/vehicle',
 ];
 
 $path = $_SERVER['PATH_INFO'];

--
Gitblit v1.9.1