Drest\Query\ExposeFields::filterPushExpose PHP Method

filterPushExpose() protected method

Filter out requested expose fields against what's allowed
protected filterPushExpose ( array $requested, array $actual ) : array
$requested array - The requested expose definition
$actual array - current allowed expose definition
return array $request - The requested expose data with non-allowed data stripped off
    protected function filterPushExpose($requested, $actual)
    {
        $requested = (array) $requested;
        $actual = (array) $actual;
        foreach ($requested as $requestedKey => $requestedValue) {
            if ($requestedKey !== 0 && in_array($requestedKey, $actual)) {
                continue;
            }
            if (is_array($requestedValue)) {
                if (is_string($requestedKey) && isset($actual[$requestedKey])) {
                    $requested[$requestedKey] = $this->filterPushExpose($requestedValue, $actual[$requestedKey]);
                    continue;
                } elseif (is_int($requestedKey)) {
                    $requested[$requestedKey] = $this->filterPushExpose($requestedValue, $actual);
                    continue;
                }
            } else {
                if (in_array($requestedKey, $actual)) {
                    continue;
                }
            }
            unset($requested[$requestedKey]);
        }
        return $requested;
    }