/** * @param ArrayCollection $mixed * @param string|null $folderId * @param bool $folderDeletable * @param string|null $parentId * * @return FacadeInterface */ public function transform($mixed, $folderId = null, $folderDeletable = false, $parentId = null) { $facade = $this->newFacade(); $facade->isFolderDeletable = $folderDeletable; $facade->parentId = $parentId; $folder = $this->folderRepository->find($folderId); foreach ($mixed as $media) { $facade->addMedia($this->getTransformer('media')->transform($media)); } if ($this->authorizationChecker->isGranted(TreeFolderPanelStrategy::ROLE_ACCESS_CREATE_MEDIA, $folder)) { $facade->addLink('_self_add', $this->generateRoute('open_orchestra_api_media_upload', array('folderId' => $folderId))); } if ($this->authorizationChecker->isGranted(TreeFolderPanelStrategy::ROLE_ACCESS_UPDATE_MEDIA_FOLDER, $folder)) { $facade->addLink('_self_folder', $this->generateRoute('open_orchestra_media_admin_folder_form', array('folderId' => $folderId))); } $facade->addLink('_media_types', $this->generateRoute('open_orchestra_api_media_type_list', array('folderId' => $folderId))); if ($this->authorizationChecker->isGranted(TreeFolderPanelStrategy::ROLE_ACCESS_DELETE_MEDIA_FOLDER, $folder)) { $facade->addLink('_self_delete', $this->generateRoute('open_orchestra_api_folder_delete', array('folderId' => $folderId))); } return $facade; }