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