Service to manage wiki almost ready
This commit is contained in:
@ -5,33 +5,35 @@ use Exception;
|
||||
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
|
||||
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCA\MyWiki\Db\Wiki;
|
||||
use OCA\MyWiki\Db\WikiMapper;
|
||||
use OCA\MyWiki\Helper\WikiHelper;
|
||||
|
||||
use \OCP\Files\Storage;
|
||||
use \OCP\Files\IRootFolder;
|
||||
|
||||
use \OCP\IUserSession;
|
||||
|
||||
class WikiService {
|
||||
|
||||
private $mapper;
|
||||
private $storage;
|
||||
private $userSession;
|
||||
private $userId;
|
||||
private $wikiHelper;
|
||||
|
||||
public function __construct(WikiMapper $mapper, IRootFolder $storage) {
|
||||
// , IUserSession $userSession ) {
|
||||
public function __construct(WikiMapper $mapper, IRootFolder $storage, $UserId) {
|
||||
$this->mapper = $mapper;
|
||||
// $this->userSession = $userSession;
|
||||
$this->storage = $storage;
|
||||
|
||||
// , IUserSession $userSession
|
||||
$this->userId = $UserId;
|
||||
|
||||
$userFolder = $storage->getUserFolder($this->userId);
|
||||
$this->wikiHelper = new WikiHelper($userFolder);
|
||||
}
|
||||
|
||||
public function test(string $userId) {
|
||||
return WikiHelper::isWiki($this->storage, 208);
|
||||
public function test() {
|
||||
$folderId = 381;
|
||||
return $this->wikiHelper->setFolderId($folderId)->reloadWikiTree();
|
||||
return $this->wikiHelper->setFolderId($folderId)->rename(707, 'UnoMasUno');
|
||||
return $this->wikiHelper->setFolderId($folderId)->rename(647, 'RenameTest3');
|
||||
|
||||
return $this->wikiHelper->setFolderId(395)->delete(395) ? 'Yes' : 'No';
|
||||
$this->wikiHelper->setFolderId($folderId)->initWiki("First Wiki");
|
||||
return print_r($this->wikiHelper->setFolderId($folderId)->getWikiTree(), true);
|
||||
return $this->wikiHelper->setFolderId($folderId)->isWiki() ? 'Yes' : 'No';
|
||||
}
|
||||
|
||||
public function findAll(string $userId) {
|
||||
@ -50,22 +52,15 @@ class WikiService {
|
||||
public function find(int $id, string $userId) {
|
||||
try {
|
||||
return $this->mapper->find($id, $userId);
|
||||
|
||||
// in order to be able to plug in different storage backends like files
|
||||
// for instance it is a good idea to turn storage related exceptions
|
||||
// into service related exceptions so controllers and service users
|
||||
// have to deal with only one type of exception
|
||||
} catch(Exception $e) {
|
||||
$this->handleException($e);
|
||||
}
|
||||
}
|
||||
|
||||
public function create(string $title, int $fileId, string $userId) {
|
||||
if ( !WikiHelper::isFolder($fileId) ) {
|
||||
throw new ReadOnlyException('The folder is not valid');
|
||||
}
|
||||
if ( !WikiHelper::isWiki($fileId) ) {
|
||||
if ( !WikiHelper::initWiki($fileId, $title) ) {
|
||||
$this->wikiHelper->setFolderId($fileId);
|
||||
if ( $this->wikiHelper->isWiki() ) {
|
||||
if ( !$this->wikiHelper->initWiki($title) ) {
|
||||
throw new ReadOnlyException('Error creating wiki');
|
||||
}
|
||||
}
|
||||
@ -93,7 +88,7 @@ class WikiService {
|
||||
if ($removeFiles) {
|
||||
$fileId = $wiki->getFileId();
|
||||
$this->mapper->usersCount($fileId);
|
||||
WikiHelper::removePage($fileId, true);
|
||||
$this->wikiHelper->setFolderId($fileId)->delete();
|
||||
}
|
||||
$this->mapper->delete($wiki);
|
||||
return $wiki;
|
||||
|
Reference in New Issue
Block a user