Skip to content

Commit 6b94692

Browse files
committed
Added request parameter validation function to support extended request variables, such as $filter.
1 parent 7d5f2a3 commit 6b94692

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

lib/Request.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public static function request($request, $output_format = "xml", $decode_json =
3434

3535
$curl = new \RESO\HttpClient\CurlClient();
3636

37+
// Parse and validate request parameters
38+
$request = self::formatRequestParameters($request);
39+
3740
// Build request URL
3841
$url = rtrim($api_request_url, "/") . "/" . $request;
3942

@@ -182,11 +185,30 @@ public static function requestMetadata() {
182185
/**
183186
* Sets accept Accept content type in all requests.
184187
*
185-
* @param string $file_name
188+
* @param string
186189
*/
187190
public static function setAcceptType($type = "") {
188191
if(in_array($type, self::$validOutputFormats)) {
189192
self::$requestAcceptType = $type;
190193
}
191194
}
195+
196+
/**
197+
* Formats request parameters to compatible string
198+
*
199+
* @param string
200+
*/
201+
public static function formatRequestParameters($parameters_string) {
202+
parse_str($parameters_string, $parsed);
203+
if(!is_array($parsed) || empty($parsed)) {
204+
throw new Error\Reso("Could not parse the request parameters.");
205+
}
206+
207+
$params = array();
208+
foreach($parsed as $key => $param) {
209+
$params[] = $key."=".rawurlencode($param);
210+
}
211+
212+
return implode("&", $params);
213+
}
192214
}

0 commit comments

Comments
 (0)