mirror of
https://github.com/friendica/friendica
synced 2025-04-19 11:50:12 +00:00
Central function to process request parameters
This commit is contained in:
parent
32e7ddf21b
commit
ce427b248e
3 changed files with 63 additions and 16 deletions
|
@ -136,6 +136,43 @@ class BaseApi extends BaseModule
|
|||
System::jsonError(501, $errorobj->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes data from GET requests and sets defaults
|
||||
*
|
||||
* @return array request data
|
||||
*/
|
||||
public static function getRequest(array $defaults) {
|
||||
$request = [];
|
||||
|
||||
foreach ($defaults as $parameter => $defaultvalue) {
|
||||
if (is_string($defaultvalue)) {
|
||||
$request[$parameter] = $_REQUEST[$parameter] ?? $defaultvalue;
|
||||
} elseif (is_int($defaultvalue)) {
|
||||
$request[$parameter] = (int)($_REQUEST[$parameter] ?? $defaultvalue);
|
||||
} elseif (is_float($defaultvalue)) {
|
||||
$request[$parameter] = (float)($_REQUEST[$parameter] ?? $defaultvalue);
|
||||
} elseif (is_array($defaultvalue)) {
|
||||
$request[$parameter] = $_REQUEST[$parameter] ?? [];
|
||||
} elseif (is_bool($defaultvalue)) {
|
||||
$request[$parameter] = in_array(strtolower($_REQUEST[$parameter] ?? ''), ['true', '1']);
|
||||
} else {
|
||||
Logger::notice('Unhandled default value type', ['parameter' => $parameter, 'type' => gettype($defaultvalue)]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($_REQUEST ?? [] as $parameter => $value) {
|
||||
if ($parameter == 'pagename') {
|
||||
continue;
|
||||
}
|
||||
if (!in_array($parameter, array_keys($defaults))) {
|
||||
Logger::notice('Unhandled request field', ['parameter' => $parameter, 'value' => $value, 'command' => DI::args()->getCommand()]);
|
||||
}
|
||||
}
|
||||
|
||||
Logger::debug('Got request parameters', ['request' => $request, 'command' => DI::args()->getCommand()]);
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get post data that is transmitted as JSON
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue