Skip to content
Snippets Groups Projects
Commit 1824e778 authored by Mantas Jonušas's avatar Mantas Jonušas
Browse files

Added missing aggregations

parent 36864231
No related branches found
No related tags found
No related merge requests found
<?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 date range aggregation.
*/
class DateRangeAggregation extends AbstractAggregation
{
use BucketingTrait;
/**
* @var string
*/
private $format;
/**
* @return string
*/
public function getFormat()
{
return $this->format;
}
/**
* @param string $format
*/
public function setFormat($format)
{
$this->format = $format;
}
/**
* @var array
*/
private $ranges = [];
/**
* Add range to aggregation.
*
* @param string|null $from
* @param string|null $to
*
* @return RangeAggregation
*
* @throws \LogicException
*/
public function addRange($from = null, $to = null)
{
if ($from === null && $to === null) {
throw new \LogicException('Missing range');
} elseif ($from === null) {
$this->ranges = [['to' => $to]];
} elseif ($to === null) {
$this->ranges = [['from' => $from]];
} else {
$this->ranges = [['from' => $from], ['to' => $to]];
}
return $this;
}
/**
* {@inheritdoc}
*/
public function getArray()
{
if ($this->getField() && $this->getFormat() && $this->ranges) {
$data = [
'format' => $this->getFormat(),
'field' => $this->getField(),
'ranges' => array_values($this->ranges),
];
return $data;
}
throw new \LogicException('Date range aggregation must have field and format set.');
}
/**
* {@inheritdoc}
*/
public function getType()
{
return 'date_range';
}
}
<?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;
use Symfony\Component\Process\Exception\LogicException;
/**
* Class representing missing aggregation.
*/
class MissingAggregation extends AbstractAggregation
{
use BucketingTrait;
/**
* {@inheritdoc}
*/
public function getArray()
{
if ($this->getField()) {
return ['field' => $this->getField()];
}
throw new LogicException('Missing aggregation must have a field set');
}
/**
* {@inheritdoc}
*/
public function getType()
{
return 'missing';
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment