mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-15 20:47:15 +01:00
35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Xentral\Modules\Api\Resource\Result;
|
||
|
|
||
|
class CollectionResult extends AbstractResult
|
||
|
{
|
||
|
/**
|
||
|
* @param array $collection
|
||
|
* @param array|null $pagination
|
||
|
*/
|
||
|
public function __construct(array $collection, array $pagination = null)
|
||
|
{
|
||
|
if (empty($pagination)) {
|
||
|
//throw new \CountryInvalidArgumentException('CollectionResult must contain pagination'); // @todo für GetIDs
|
||
|
}
|
||
|
|
||
|
if (empty($collection)) {
|
||
|
throw new \InvalidArgumentException('CollectionResult can not be empty');
|
||
|
}
|
||
|
$firstKey = key($collection);
|
||
|
if (!is_numeric($firstKey)) {
|
||
|
throw new \InvalidArgumentException('CollectionResult can only store an index based array');
|
||
|
}
|
||
|
if (!is_array($collection[$firstKey]) || empty($collection[$firstKey])) {
|
||
|
throw new \RuntimeException('CollectionResult must contain at least one result');
|
||
|
}
|
||
|
|
||
|
// @todo Sicherstellen dass Paginierung passt
|
||
|
|
||
|
$this->type = self::RESULT_TYPE_COLLECTION;
|
||
|
$this->data = $collection;
|
||
|
$this->pagination = $pagination;
|
||
|
}
|
||
|
}
|