From e420e65d0f2935d716fb64ec759caa86c68912cf Mon Sep 17 00:00:00 2001 From: juliensantos87 <julien.santos87@gmail.com> Date: Thu, 12 Mar 2015 15:32:57 +0100 Subject: [PATCH] add ReverseNestedAggregation ReverseNestedAggregation + tests --- Aggregation/ReverseNestedAggregation.php | 72 ++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Aggregation/ReverseNestedAggregation.php diff --git a/Aggregation/ReverseNestedAggregation.php b/Aggregation/ReverseNestedAggregation.php new file mode 100644 index 0000000..cb06403 --- /dev/null +++ b/Aggregation/ReverseNestedAggregation.php @@ -0,0 +1,72 @@ +<?php + +/* + * This file is part of the ONGR package. + * + * (c) NFQ Technologies UAB <info@nfq.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace ONGR\ElasticsearchBundle\DSL\Aggregation; + +use ONGR\ElasticsearchBundle\DSL\Aggregation\Type\BucketingTrait; + +/** + * Class representing ReverseNestedAggregation. + */ +class ReverseNestedAggregation extends AbstractAggregation +{ + use BucketingTrait; + + /** + * @var string + */ + private $path; + + /** + * Return path. + * + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * Sets path. + * + * @param string $path + */ + public function setPath($path) + { + $this->path = $path; + } + + /** + * {@inheritdoc} + */ + public function getType() + { + return 'reverse_nested'; + } + + /** + * {@inheritdoc} + */ + public function getArray() + { + if (count($this->getAggregations()) == 0) { + throw new \LogicException("Reverse Nested aggregation `{$this->getName()}` has no aggregations added"); + } + + $data = new \stdClass(); + if ($this->getPath()) { + $data = ['path' => $this->getPath()]; + } + + return $data; + } +} -- GitLab