protected function FilterNormalizer::expandItem in JSON:API 8
Expands a filter item in case a shortcut was used.
Possible cases for the conditions: 1. filter[uuid][value]=1234. 2. filter[0][condition][field]=uuid&filter[0][condition][value]=1234. 3. filter[uuid][condition][value]=1234. 4. filter[uuid][value]=1234&filter[uuid][group]=my_group.
Parameters
string $filter_index: The index.
array $filter_item: The raw filter item.
array $context: The denormalization context.
Return value
array The expanded filter item.
1 call to FilterNormalizer::expandItem()
- FilterNormalizer::expand in src/
Normalizer/ FilterNormalizer.php - Expands any filter parameters using shorthand notation.
File
- src/
Normalizer/ FilterNormalizer.php, line 171
Class
- FilterNormalizer
- The normalizer used for JSON API filters.
Namespace
Drupal\jsonapi\NormalizerCode
protected function expandItem($filter_index, array $filter_item, array $context) {
if (isset($filter_item[EntityConditionNormalizer::VALUE_KEY])) {
if (!isset($filter_item[EntityConditionNormalizer::PATH_KEY])) {
$filter_item[EntityConditionNormalizer::PATH_KEY] = $filter_index;
}
$filter_item = [
static::CONDITION_KEY => $filter_item,
static::MEMBER_KEY => $filter_item[static::MEMBER_KEY],
];
}
if (!isset($filter_item[static::CONDITION_KEY][EntityConditionNormalizer::OPERATOR_KEY])) {
$filter_item[static::CONDITION_KEY][EntityConditionNormalizer::OPERATOR_KEY] = '=';
}
if (isset($filter_item[static::CONDITION_KEY][EntityConditionNormalizer::PATH_KEY])) {
$filter_item[static::CONDITION_KEY][EntityConditionNormalizer::PATH_KEY] = $this->fieldResolver
->resolveInternalEntityQueryPath($context['entity_type_id'], $context['bundle'], $filter_item[static::CONDITION_KEY][EntityConditionNormalizer::PATH_KEY]);
}
return $filter_item;
}