diff options
author | Sean Molenaar <sean@seanmolenaar.eu> | 2020-08-29 23:39:35 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2020-09-27 15:35:31 +0200 |
commit | d00d1ab2a28f428223e52b17052c072c64784016 (patch) | |
tree | c019f85fb7ac67147dd43ca64b4ac3cda99832f7 /lib/Service/FolderService.php | |
parent | 5687baca75d47dbdffd3de74e865ad2f71ef0cb7 (diff) |
Create V2 mapper, Service and management commands
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
Diffstat (limited to 'lib/Service/FolderService.php')
-rw-r--r-- | lib/Service/FolderService.php | 97 |
1 files changed, 60 insertions, 37 deletions
diff --git a/lib/Service/FolderService.php b/lib/Service/FolderService.php index 35eb77f95..ed95f81f4 100644 --- a/lib/Service/FolderService.php +++ b/lib/Service/FolderService.php @@ -15,11 +15,23 @@ namespace OCA\News\Service; use OCA\News\AppInfo\Application; use OCP\IConfig; +use OCA\News\Service\Exceptions\ServiceConflictException; +use OCA\News\Service\Exceptions\ServiceException; +use OCA\News\Service\Exceptions\ServiceNotFoundException; +use OCA\News\Service\Exceptions\ServiceValidationException; +use OCP\AppFramework\Db\Entity; use OCP\IL10N; use OCA\News\Db\Folder; use OCA\News\Db\FolderMapper; use OCA\News\Utility\Time; +use Psr\Log\LoggerInterface; +/** + * Class LegacyFolderService + * + * @package OCA\News\Service + * @deprecated use FolderServiceV2 + */ class FolderService extends Service { @@ -32,35 +44,37 @@ class FolderService extends Service FolderMapper $folderMapper, IL10N $l10n, Time $timeFactory, - IConfig $config + IConfig $config, + LoggerInterface $logger ) { - parent::__construct($folderMapper); - $this->l10n = $l10n; - $this->timeFactory = $timeFactory; + parent::__construct($folderMapper, $logger); + $this->l10n = $l10n; + $this->timeFactory = $timeFactory; + $this->folderMapper = $folderMapper; $this->autoPurgeMinimumInterval = $config->getAppValue( Application::NAME, 'autoPurgeMinimumInterval', Application::DEFAULT_SETTINGS['autoPurgeMinimumInterval'] ); - $this->folderMapper = $folderMapper; } /** - * Returns all folders of a user + * Finds all folders of a user + * + * @param string $userId the name of the user * - * @param string $userId the name of the user - * @return array of folders + * @return Folder[] */ - public function findAll($userId) + public function findAllForUser(string $userId): array { return $this->folderMapper->findAllFromUser($userId); } - private function validateFolder($folderName, $userId) + private function validateFolder(string $folderName, string $userId) { - $existingFolders = - $this->folderMapper->findByName($folderName, $userId); + $existingFolders + = $this->folderMapper->findByName($folderName, $userId); if (count($existingFolders) > 0) { throw new ServiceConflictException( $this->l10n->t('Can not add folder: Exists already') @@ -78,15 +92,16 @@ class FolderService extends Service /** * Creates a new folder * - * @param string $folderName the name of the folder - * @param string $userId the name of the user for whom it should be created - * @param int $parentId the parent folder id, deprecated we don't nest + * @param string $folderName the name of the folder + * @param string $userId the name of the user for whom it should be created + * @param int $parentId the parent folder id, deprecated we don't nest * folders - * @throws ServiceConflictException if name exists already + * + * @return Folder|Entity the newly created folder * @throws ServiceValidationException if the folder has invalid parameters - * @return Folder the newly created folder + * @throws ServiceConflictException if name exists already */ - public function create($folderName, $userId, $parentId = 0) + public function create(string $folderName, string $userId, int $parentId = 0) { $this->validateFolder($folderName, $userId); @@ -103,9 +118,9 @@ class FolderService extends Service /** * @throws ServiceException if the folder does not exist */ - public function open($folderId, $opened, $userId) + public function open(int $folderId, bool $opened, string $userId) { - $folder = $this->find($folderId, $userId); + $folder = $this->find($userId, $folderId); $folder->setOpened($opened); $this->folderMapper->update($folder); } @@ -114,19 +129,20 @@ class FolderService extends Service /** * Renames a folder * - * @param int $folderId the id of the folder that should be deleted - * @param string $folderName the new name of the folder - * @param string $userId the name of the user for security reasons - * @throws ServiceConflictException if name exists already + * @param int $folderId the id of the folder that should be deleted + * @param string $folderName the new name of the folder + * @param string $userId the name of the user for security reasons + * + * @return Folder the updated folder * @throws ServiceValidationException if the folder has invalid parameters * @throws ServiceNotFoundException if the folder does not exist - * @return Folder the updated folder + * @throws ServiceConflictException if name exists already */ - public function rename($folderId, $folderName, $userId) + public function rename(int $folderId, string $folderName, string $userId) { $this->validateFolder($folderName, $userId); - $folder = $this->find($folderId, $userId); + $folder = $this->find($userId, $folderId); $folder->setName($folderName); return $this->folderMapper->update($folder); @@ -136,13 +152,14 @@ class FolderService extends Service /** * Use this to mark a folder as deleted. That way it can be un-deleted * - * @param int $folderId the id of the folder that should be deleted - * @param string $userId the name of the user for security reasons + * @param int $folderId the id of the folder that should be deleted + * @param string $userId the name of the user for security reasons + * * @throws ServiceNotFoundException when folder does not exist */ - public function markDeleted($folderId, $userId) + public function markDeleted(int $folderId, string $userId) { - $folder = $this->find($folderId, $userId); + $folder = $this->find($userId, $folderId); $folder->setDeletedAt($this->timeFactory->getTime()); $this->folderMapper->update($folder); } @@ -151,13 +168,14 @@ class FolderService extends Service /** * Use this to restore a folder * - * @param int $folderId the id of the folder that should be restored - * @param string $userId the name of the user for security reasons + * @param int $folderId the id of the folder that should be restored + * @param string $userId the name of the user for security reasons + * * @throws ServiceNotFoundException when folder does not exist */ - public function unmarkDeleted($folderId, $userId) + public function unmarkDeleted(int $folderId, string $userId) { - $folder = $this->find($folderId, $userId); + $folder = $this->find($userId, $folderId); $folder->setDeletedAt(0); $this->folderMapper->update($folder); } @@ -171,7 +189,7 @@ class FolderService extends Service * entries in a given interval to give the user a chance to undo the * deletion */ - public function purgeDeleted($userId = null, $useInterval = true) + public function purgeDeleted(?string $userId = null, bool $useInterval = true) { $deleteOlderThan = null; @@ -193,8 +211,13 @@ class FolderService extends Service * * @param string $userId the name of the user */ - public function deleteUser($userId) + public function deleteUser(string $userId) { $this->folderMapper->deleteUser($userId); } + + public function findAll(): array + { + return $this->mapper->findAll(); + } } |