. * */ namespace OCA\News\Bl; use \OCA\News\Db\Folder; use \OCA\News\Db\FolderMapper; class FolderBl extends Bl { public function __construct(FolderMapper $folderMapper){ parent::__construct($folderMapper); } public function findAll($userId) { return $this->mapper->findAllFromUser($userId); } private function allowNoNameTwice($folderName, $userId){ $existingFolders = $this->mapper->findByName($folderName, $userId); if(count($existingFolders) > 0){ throw new BLException('Error: Folder with name ' . $folderName . ' exists already!'); } } /** * @throws BLException if name exists already */ public function create($folderName, $userId, $parentId=0) { $this->allowNoNameTwice($folderName, $userId); $folder = new Folder(); $folder->setName($folderName); $folder->setUserId($userId); $folder->setParentId($parentId); return $this->mapper->insert($folder); } public function open($folderId, $opened, $userId){ $folder = $this->find($folderId, $userId); $folder->setOpened($opened); $this->mapper->update($folder); } /** * @throws BLException if name exists already */ public function rename($folderId, $folderName, $userId){ $this->allowNoNameTwice($folderName, $userId); $folder = $this->find($folderId, $userId); $folder->setName($folderName); $this->mapper->update($folder); } // TODO: delete associated items }