%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Services/Object/ |
Current File : //www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Services/Object/FolderService.php |
<?php /** * This file is part of the Passwords App * created by Marius David Wieschollek * and licensed under the AGPL. */ namespace OCA\Passwords\Services\Object; use Exception; use OCA\Passwords\Db\AbstractMapper; use OCA\Passwords\Db\EntityInterface; use OCA\Passwords\Db\Folder; use OCA\Passwords\Db\FolderMapper; use OCA\Passwords\Db\ModelInterface; use OCA\Passwords\Db\RevisionInterface; use OCA\Passwords\Helper\Uuid\UuidHelper; use OCA\Passwords\Services\EnvironmentService; use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\Entity; use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\EventDispatcher\IEventDispatcher; /** * Class FolderService * * @package OCA\Passwords\Services */ class FolderService extends AbstractModelService { const BASE_FOLDER_UUID = '00000000-0000-0000-0000-000000000000'; /** * @var FolderMapper|AbstractMapper */ protected AbstractMapper $mapper; /** * @var string */ protected string $class = Folder::class; /** * FolderService constructor. * * @param IEventDispatcher $eventDispatcher * @param FolderMapper $mapper * @param UuidHelper $uuidHelper * @param EnvironmentService $environment */ public function __construct(IEventDispatcher $eventDispatcher, FolderMapper $mapper, UuidHelper $uuidHelper, EnvironmentService $environment) { parent::__construct($mapper, $uuidHelper, $eventDispatcher, $environment); } /** * @return ModelInterface[]|Folder[] */ public function findAll(?string $userId = null): array { if($userId === null) { return $this->mapper->findAll(); } else { return $this->mapper->findAllByUserId($userId); } } /** * @param string $uuid * * @return EntityInterface|Folder * * @throws DoesNotExistException * @throws MultipleObjectsReturnedException */ public function findByUuid(string $uuid): ModelInterface { if($uuid === self::BASE_FOLDER_UUID) return $this->getBaseFolder(); return parent::findByUuid($uuid); } /** * @param string $uuid * * @return Folder[] */ public function findByParent(string $uuid): array { return $this->mapper->findAllByParentFolder($uuid); } /** * @return Folder|ModelInterface */ public function getBaseFolder(): Folder { $model = $this->createModel(); $model->setRevision(FolderRevisionService::BASE_REVISION_UUID); $model->setUuid(self::BASE_FOLDER_UUID); $this->fireEvent('instantiated', $model); return $model; } /** * @param ModelInterface|EntityInterface $model * * @return Folder|Entity */ public function save(EntityInterface $model): EntityInterface { if($model->getUuid() === self::BASE_FOLDER_UUID) return $model; return parent::save($model); } /** * @param ModelInterface|EntityInterface $entity * @param array $overwrites * * @return EntityInterface * @throws Exception */ public function clone(EntityInterface $entity, array $overwrites = []): EntityInterface { if($entity->getUuid() === self::BASE_FOLDER_UUID) return $entity; return parent::clone($entity, $overwrites); } /** * @param ModelInterface|EntityInterface $model * * @throws Exception */ public function delete(EntityInterface $model): void { if($model->getUuid() === self::BASE_FOLDER_UUID) return; parent::delete($model); } /** * @param ModelInterface $model * @param RevisionInterface $revision * * @throws Exception */ public function setRevision(ModelInterface $model, RevisionInterface $revision): void { if($model->getUuid() === self::BASE_FOLDER_UUID) return; parent::setRevision($model, $revision); } }