Sulu\Bundle\MediaBundle\Collection\Manager\CollectionManager::getApiEntity PHP Method

getApiEntity() protected method

Prepare an api entity.
protected getApiEntity ( Sulu\Bundle\MediaBundle\Entity\CollectionInterface $entity, string $locale, Collection[] $entities = null, array $breadcrumbEntities = null ) : Collection
$entity Sulu\Bundle\MediaBundle\Entity\CollectionInterface
$locale string
$entities Sulu\Bundle\MediaBundle\Entity\Collection[] nested set
$breadcrumbEntities array
return Sulu\Bundle\MediaBundle\Api\Collection
    protected function getApiEntity(CollectionInterface $entity, $locale, $entities = null, $breadcrumbEntities = null)
    {
        $apiEntity = new Collection($entity, $locale);
        $children = [];
        if ($entities !== null) {
            foreach ($entities as $possibleChild) {
                if (($parent = $possibleChild->getParent()) !== null && $parent->getId() === $entity->getId()) {
                    $children[] = $this->getApiEntity($possibleChild, $locale, $entities);
                }
            }
        }
        $apiEntity->setChildren($children);
        if ($entity->getParent() !== null) {
            $apiEntity->setParent($this->getApiEntity($entity->getParent(), $locale));
        }
        if ($breadcrumbEntities !== null) {
            $breadcrumbApiEntities = [];
            foreach ($breadcrumbEntities as $entity) {
                $breadcrumbApiEntities[] = $this->getApiEntity($entity, $locale);
            }
            $apiEntity->setBreadcrumb($breadcrumbApiEntities);
        }
        if ($entity && $entity->getId()) {
            $apiEntity->setMediaCount($this->collectionRepository->countMedia($entity));
            $apiEntity->setSubCollectionCount($this->collectionRepository->countSubCollections($entity));
        }
        return $this->addPreview($apiEntity);
    }