mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-11 03:53:13 +00:00
32 lines
879 B
PHP
32 lines
879 B
PHP
<?php
|
|
|
|
namespace Alchemy\Phrasea\SearchEngine\Elastic\Search;
|
|
|
|
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Field;
|
|
|
|
class AggregationHelper
|
|
{
|
|
private function __construct() {}
|
|
|
|
public static function wrapPrivateFieldAggregation(Field $field, array $aggregation)
|
|
{
|
|
if ($field->isPrivate()) {
|
|
$wrapper = [];
|
|
$wrapper['filter']['terms']['base_id'] = $field->getDependantCollections();
|
|
$wrapper['aggs']['__wrapped_private_field__'] = $aggregation;
|
|
return $wrapper;
|
|
} else {
|
|
return $aggregation;
|
|
}
|
|
}
|
|
|
|
public static function unwrapPrivateFieldAggregation(array $aggregation)
|
|
{
|
|
if (isset($aggregation['__wrapped_private_field__'])) {
|
|
return $aggregation['__wrapped_private_field__'];
|
|
} else {
|
|
return $aggregation;
|
|
}
|
|
}
|
|
}
|