From ee124db609e88841743bc89a418f8a7242446907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simonas=20=C5=A0erlinskas?= <simonas.serlinskas@nfq.com> Date: Wed, 12 Aug 2015 10:39:18 +0300 Subject: [PATCH] introduce 2nd argument for FieldSort for ordering --- src/Sort/FieldSort.php | 15 +++++++++++++-- tests/Aggregation/TopHitsAggregationTest.php | 3 +-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Sort/FieldSort.php b/src/Sort/FieldSort.php index 573dff6..4223eae 100644 --- a/src/Sort/FieldSort.php +++ b/src/Sort/FieldSort.php @@ -22,10 +22,15 @@ class FieldSort implements BuilderInterface const DESC = 'desc'; /** - * @var string. + * @var string */ private $field; + /** + * @var string + */ + private $order; + /** * @var array */ @@ -38,11 +43,13 @@ class FieldSort implements BuilderInterface /** * @param string $field Field name. + * @param string $order Order direction. * @param array $params Params that can be set to field sort. */ - public function __construct($field, $params = []) + public function __construct($field, $order = null, $params = []) { $this->field = $field; + $this->order = $order; $this->params = $params; } @@ -77,6 +84,10 @@ class FieldSort implements BuilderInterface */ public function toArray() { + if ($this->order) { + $this->params['order'] = $this->order; + } + if ($this->nestedFilter) { $fieldValues = array_merge( $this->params, diff --git a/tests/Aggregation/TopHitsAggregationTest.php b/tests/Aggregation/TopHitsAggregationTest.php index 5b6dd99..5ac784d 100644 --- a/tests/Aggregation/TopHitsAggregationTest.php +++ b/tests/Aggregation/TopHitsAggregationTest.php @@ -11,7 +11,6 @@ namespace ONGR\ElasticsearchDSL\Tests\Unit\DSL\Aggregation; -use ONGR\ElasticsearchDSL\Aggregation\AbstractAggregation; use ONGR\ElasticsearchDSL\Aggregation\TopHitsAggregation; use ONGR\ElasticsearchDSL\Sort\FieldSort; @@ -25,7 +24,7 @@ class TopHitsAggregationTest extends \PHPUnit_Framework_TestCase */ public function testToArray() { - $sort = new FieldSort('acme', ['order' => 'asc']); + $sort = new FieldSort('acme', FieldSort::ASC); $aggregation = new TopHitsAggregation('acme', 1, 1, $sort); $expected = [ -- GitLab