protected function SortNormalizer::expandItem in JSON:API 8
Expands a sort item in case a shortcut was used.
Parameters
string $sort_index: Unique identifier for the sort parameter being expanded.
array $sort_item: The raw sort item.
Return value
array The expanded sort item.
1 call to SortNormalizer::expandItem()
- SortNormalizer::expand in src/
Normalizer/ SortNormalizer.php
File
- src/
Normalizer/ SortNormalizer.php, line 120
Class
- SortNormalizer
- The normalizer used for JSON API sorts.
Namespace
Drupal\jsonapi\NormalizerCode
protected function expandItem($sort_index, array $sort_item) {
$defaults = [
Sort::DIRECTION_KEY => 'ASC',
Sort::LANGUAGE_KEY => NULL,
];
if (!isset($sort_item[Sort::PATH_KEY])) {
throw new BadRequestHttpException('You need to provide a field name for the sort parameter.');
}
$expected_keys = [
Sort::PATH_KEY,
Sort::DIRECTION_KEY,
Sort::LANGUAGE_KEY,
];
$expanded = array_merge($defaults, $sort_item);
// Verify correct sort keys.
if (count(array_diff($expected_keys, array_keys($expanded))) > 0) {
throw new BadRequestHttpException('You have provided an invalid set of sort keys.');
}
return $expanded;
}