diff --git a/src/Doctrine/Odm/Filter/OrderFilter.php b/src/Doctrine/Odm/Filter/OrderFilter.php index e3da0a55a5..c518cf6ca4 100644 --- a/src/Doctrine/Odm/Filter/OrderFilter.php +++ b/src/Doctrine/Odm/Filter/OrderFilter.php @@ -280,6 +280,6 @@ protected function filterProperty(string $property, mixed $value, Builder $aggre */ public function getSchema(Parameter $parameter): array { - return ['type' => 'string', 'enum' => ['asc', 'desc']]; + return ['type' => 'string', 'enum' => ['asc', 'desc', 'ASC', 'DESC']]; } } diff --git a/src/Doctrine/Orm/Filter/OrderFilter.php b/src/Doctrine/Orm/Filter/OrderFilter.php index 586060b8b7..54de60267c 100644 --- a/src/Doctrine/Orm/Filter/OrderFilter.php +++ b/src/Doctrine/Orm/Filter/OrderFilter.php @@ -287,6 +287,6 @@ protected function filterProperty(string $property, mixed $value, QueryBuilder $ */ public function getSchema(Parameter $parameter): array { - return ['type' => 'string', 'enum' => ['asc', 'desc']]; + return ['type' => 'string', 'enum' => ['asc', 'desc', 'ASC', 'DESC']]; } } diff --git a/src/Laravel/Eloquent/Filter/OrderFilter.php b/src/Laravel/Eloquent/Filter/OrderFilter.php index 937452b7f6..3cf3b23987 100644 --- a/src/Laravel/Eloquent/Filter/OrderFilter.php +++ b/src/Laravel/Eloquent/Filter/OrderFilter.php @@ -51,7 +51,7 @@ public function apply(Builder $builder, mixed $values, Parameter $parameter, arr */ public function getSchema(Parameter $parameter): array { - return ['type' => 'string', 'enum' => ['asc', 'desc']]; + return ['type' => 'string', 'enum' => ['asc', 'desc', 'ASC', 'DESC']]; } /** diff --git a/tests/Functional/Parameters/OrderFilterTest.php b/tests/Functional/Parameters/OrderFilterTest.php index fc49eb92f9..368ca97028 100644 --- a/tests/Functional/Parameters/OrderFilterTest.php +++ b/tests/Functional/Parameters/OrderFilterTest.php @@ -78,6 +78,14 @@ public static function orderFilterScenariosProvider(): \Generator '/filtered_order_parameters?createdAt=desc', ['2024-12-25T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-01-01T00:00:00+00:00', null], ]; + yield 'created_at_ordered_asc_uppercase' => [ + '/filtered_order_parameters?createdAt=ASC', + [null, '2024-01-01T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-12-25T00:00:00+00:00'], + ]; + yield 'created_at_ordered_desc_uppercase' => [ + '/filtered_order_parameters?createdAt=DESC', + ['2024-12-25T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-01-01T00:00:00+00:00', null], + ]; yield 'date_alias_ordered_asc' => [ '/filtered_order_parameters?date=asc', [null, '2024-01-01T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-12-25T00:00:00+00:00'], @@ -132,6 +140,14 @@ public static function orderFilterNullsComparisonScenariosProvider(): \Generator '/filtered_order_parameters?order[createdAt]=desc', [null, '2024-12-25T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-01-01T00:00:00+00:00'], ]; + yield 'order_property_created_at_null_first_asc_uppercase' => [ + '/filtered_order_parameters?order[createdAt]=ASC', + [null, '2024-01-01T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-12-25T00:00:00+00:00'], + ]; + yield 'order_property_created_at_null_first_desc_uppercase' => [ + '/filtered_order_parameters?order[createdAt]=DESC', + [null, '2024-12-25T00:00:00+00:00', '2024-06-15T00:00:00+00:00', '2024-01-01T00:00:00+00:00'], + ]; } /**