From 0c1f73efa4de9591145d53876f5b980bd61d86b8 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Mon, 23 Sep 2024 11:30:01 -0100 Subject: [PATCH] get rid of ILogger Signed-off-by: Maxence Lange --- lib/Command/Configure.php | 23 +--- lib/Controller/SettingsController.php | 41 +----- lib/Db/CoreRequestBuilder.php | 17 +-- lib/Listeners/ListenersCore.php | 48 +------ lib/Provider/FilesProvider.php | 74 +++-------- lib/Service/ConfigService.php | 26 +--- lib/Service/ExtensionService.php | 32 +---- lib/Service/ExternalFilesService.php | 84 ++---------- lib/Service/FilesService.php | 184 ++++++-------------------- lib/Service/MiscService.php | 80 ----------- lib/Service/SearchService.php | 75 +++-------- lib/Service/SettingsService.php | 78 ----------- lib/Settings/Admin.php | 34 ----- 13 files changed, 110 insertions(+), 686 deletions(-) delete mode 100644 lib/Service/MiscService.php delete mode 100644 lib/Service/SettingsService.php diff --git a/lib/Command/Configure.php b/lib/Command/Configure.php index 38fc8ca2..0d282496 100644 --- a/lib/Command/Configure.php +++ b/lib/Command/Configure.php @@ -34,7 +34,6 @@ use Exception; use OC\Core\Command\Base; use OCA\Files_FullTextSearch\Service\ConfigService; -use OCA\Files_FullTextSearch\Service\MiscService; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -45,26 +44,10 @@ * @package OCA\Files_FullTextSearch\Command */ class Configure extends Base { - - - /** @var ConfigService */ - private $configService; - - /** @var MiscService */ - private $miscService; - - - /** - * Configure constructor. - * - * @param ConfigService $configService - * @param MiscService $miscService - */ - public function __construct(ConfigService $configService, MiscService $miscService) { + public function __construct( + private ConfigService $configService + ) { parent::__construct(); - - $this->configService = $configService; - $this->miscService = $miscService; } diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 9e37540e..d966b7ad 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -34,9 +34,6 @@ use Exception; use OCA\Files_FullTextSearch\AppInfo\Application; use OCA\Files_FullTextSearch\Service\ConfigService; -use OCA\Files_FullTextSearch\Service\MiscService; -use OCA\Files_FullTextSearch\Service\SettingsService; -use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; @@ -48,40 +45,11 @@ * @package OCA\Files_FullTextSearch\Controller */ class SettingsController extends Controller { - - - /** @var IAppManager */ - private $appManager; - - /** @var ConfigService */ - private $configService; - - /** @var SettingsService */ - private $settingsService; - - /** @var MiscService */ - private $miscService; - - - /** - * SettingsController constructor. - * - * @param IRequest $request - * @param IAppManager $appManager - * @param ConfigService $configService - * @param SettingsService $settingsService - * @param MiscService $miscService - */ public function __construct( - IRequest $request, IAppManager $appManager, ConfigService $configService, - SettingsService $settingsService, - MiscService $miscService + IRequest $request, + private ConfigService $configService, ) { parent::__construct(Application::APP_ID, $request); - $this->appManager = $appManager; - $this->configService = $configService; - $this->settingsService = $settingsService; - $this->miscService = $miscService; } @@ -103,10 +71,7 @@ public function getSettingsAdmin(): DataResponse { * @throws Exception */ public function setSettingsAdmin(array $data): DataResponse { - if ($this->settingsService->checkConfig($data)) { - $this->configService->setConfig($data); - } - + $this->configService->setConfig($data); return $this->getSettingsAdmin(); } } diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php index 9a792220..086996f3 100644 --- a/lib/Db/CoreRequestBuilder.php +++ b/lib/Db/CoreRequestBuilder.php @@ -33,7 +33,6 @@ use OC; use OC\SystemConfig; -use OCA\Files_FullTextSearch\Service\MiscService; use OCP\IDBConnection; use Psr\Log\LoggerInterface; @@ -45,21 +44,9 @@ class CoreRequestBuilder { public const TABLE_SHARES = 'share'; + protected string $defaultSelectAlias; - /** @var MiscService */ - protected $miscService; - - /** @var string */ - protected $defaultSelectAlias; - - - /** - * CoreRequestBuilder constructor. - * - * @param MiscService $miscService - */ - public function __construct(MiscService $miscService) { - $this->miscService = $miscService; + public function __construct() { } /** diff --git a/lib/Listeners/ListenersCore.php b/lib/Listeners/ListenersCore.php index be19c08d..afa49d57 100644 --- a/lib/Listeners/ListenersCore.php +++ b/lib/Listeners/ListenersCore.php @@ -31,12 +31,10 @@ namespace OCA\Files_FullTextSearch\Listeners; -use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc21\TNC21Logger; use ArtificialOwl\MySmallPhpTools\Traits\TArrayTools; use OC\AppFramework\Bootstrap\Coordinator; use OCA\Files_FullTextSearch\Service\ConfigService; use OCA\Files_FullTextSearch\Service\FilesService; -use OCA\Files_FullTextSearch\Service\MiscService; use OCP\FullTextSearch\IFullTextSearchManager; use OCP\IUserSession; @@ -47,50 +45,14 @@ */ class ListenersCore { use TArrayTools; - use TNC21Logger; - - /** @var IUserSession */ - protected $userSession; - - /** @var Coordinator */ - protected $coordinator; - - /** @var IFullTextSearchManager */ - protected $fullTextSearchManager; - - /** @var FilesService */ - protected $filesService; - - /** @var ConfigService */ - protected $configService; - - /** @var MiscService */ - protected $miscService; - - - /** - * CoreFileEvents constructor. - * - * @param Coordinator $coordinator - * @param IUserSession $userSession - * @param IFullTextSearchManager $fullTextSearchManager - * @param FilesService $filesService - * @param ConfigService $configService - * @param MiscService $miscService - */ public function __construct( - Coordinator $coordinator, IUserSession $userSession, IFullTextSearchManager $fullTextSearchManager, - FilesService $filesService, ConfigService $configService, MiscService $miscService + protected Coordinator $coordinator, + protected IUserSession $userSession, + protected IFullTextSearchManager $fullTextSearchManager, + protected FilesService $filesService, + protected ConfigService $configService ) { - $this->userSession = $userSession; - $this->coordinator = $coordinator; - $this->fullTextSearchManager = $fullTextSearchManager; - $this->filesService = $filesService; - $this->configService = $configService; - $this->miscService = $miscService; - - $this->setup('app', 'files_fulltextsearch'); } diff --git a/lib/Provider/FilesProvider.php b/lib/Provider/FilesProvider.php index 9c6e10b1..ea530458 100644 --- a/lib/Provider/FilesProvider.php +++ b/lib/Provider/FilesProvider.php @@ -31,17 +31,14 @@ namespace OCA\Files_FullTextSearch\Provider; -use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Logger; use OC\FullTextSearch\Model\SearchOption; use OC\FullTextSearch\Model\SearchTemplate; use OC\User\NoUserException; -use OCA\Files_FullTextSearch\AppInfo\Application; use OCA\Files_FullTextSearch\Exceptions\FileIsNotIndexableException; use OCA\Files_FullTextSearch\Model\FilesDocument; use OCA\Files_FullTextSearch\Service\ConfigService; use OCA\Files_FullTextSearch\Service\ExtensionService; use OCA\Files_FullTextSearch\Service\FilesService; -use OCA\Files_FullTextSearch\Service\MiscService; use OCA\Files_FullTextSearch\Service\SearchService; use OCP\Files\InvalidPathException; use OCP\Files\NotFoundException; @@ -57,6 +54,7 @@ use OCP\FullTextSearch\Model\ISearchResult; use OCP\FullTextSearch\Model\ISearchTemplate; use OCP\IL10N; +use Psr\Log\LoggerInterface; /** * Class FilesProvider @@ -64,48 +62,18 @@ * @package OCA\Files_FullTextSearch\Provider */ class FilesProvider implements IFullTextSearchProvider { - use TNC22Logger; - public const FILES_PROVIDER_ID = 'files'; - - - /** @var IL10N */ - private $l10n; - - /** @var ConfigService */ - private $configService; - - /** @var FilesService */ - private $filesService; - - /** @var SearchService */ - private $searchService; - - /** @var ExtensionService */ - private $extensionService; - - /** @var MiscService */ - private $miscService; - - /** @var IRunner */ - private $runner; - - /** @var IIndexOptions */ - private $indexOptions; - + private IRunner $runner; + private IIndexOptions $indexOptions; public function __construct( - IL10N $l10n, ConfigService $configService, FilesService $filesService, - SearchService $searchService, ExtensionService $extensionService, MiscService $miscService + private IL10N $l10n, + private ConfigService $configService, + private FilesService $filesService, + private SearchService $searchService, + private ExtensionService $extensionService, + private LoggerInterface $logger, ) { - $this->l10n = $l10n; - $this->configService = $configService; - $this->filesService = $filesService; - $this->searchService = $searchService; - $this->extensionService = $extensionService; - $this->miscService = $miscService; - - $this->setup('app', Application::APP_ID); } @@ -129,10 +97,10 @@ public function getName(): string { * @return array */ public function getConfiguration(): array { - $this->debug('getConfiguration request'); + $this->logger->debug('getConfiguration request'); $config = $this->configService->getConfig(); $this->extensionService->getConfig($config); - $this->debug('getConfiguration result', $config); + $this->logger->debug('getConfiguration result', ['config' => $config]); return $config; } @@ -242,9 +210,9 @@ public function loadProvider() { * @throws NotFoundException */ public function generateChunks(string $userId): array { - $this->debug('generateChunks request', ['userId' => $userId, 'options' => $this->indexOptions]); + $this->logger->debug('generateChunks request', ['userId' => $userId, 'options' => $this->indexOptions]); $chunks = $this->filesService->getChunksFromUser($userId, $this->indexOptions); - $this->debug('generateChunks result', $chunks); + $this->logger->debug('generateChunks result', $chunks); return $chunks; } @@ -262,9 +230,9 @@ public function generateChunks(string $userId): array { * @throws NoUserException */ public function generateIndexableDocuments(string $userId, string $chunk): array { - $this->debug('generateIndexableDocuments request', ['userId' => $userId, 'chunk' => $chunk]); + $this->logger->debug('generateIndexableDocuments request', ['userId' => $userId, 'chunk' => $chunk]); $documents = $this->filesService->getFilesFromUser($userId, $chunk); - $this->debug('generateIndexableDocuments result', ['documents' => count($documents)]); + $this->logger->debug('generateIndexableDocuments result', ['documents' => count($documents)]); return $documents; } @@ -281,9 +249,9 @@ public function fillIndexDocument(IIndexDocument $document) { 'title' => $document->getPath() ] ); - $this->debug('fillIndexDocument request', ['document' => $document]); + $this->logger->debug('fillIndexDocument request', ['document' => $document]); $this->filesService->generateDocument($document); - $this->debug('fillIndexDocument result', ['document' => $document]); + $this->logger->debug('fillIndexDocument result', ['document' => $document]); } @@ -293,9 +261,9 @@ public function fillIndexDocument(IIndexDocument $document) { * @return bool */ public function isDocumentUpToDate(IIndexDocument $document): bool { - $this->debug('isDocumentUpToDate request', ['document' => $document]); + $this->logger->debug('isDocumentUpToDate request', ['document' => $document]); $result = $this->filesService->isDocumentUpToDate($document); - $this->debug('isDocumentUpToDate result', ['document' => $document, 'result' => $result]); + $this->logger->debug('isDocumentUpToDate result', ['document' => $document, 'result' => $result]); return $result; } @@ -310,9 +278,9 @@ public function isDocumentUpToDate(IIndexDocument $document): bool { * @throws FileIsNotIndexableException */ public function updateDocument(IIndex $index): IIndexDocument { - $this->debug('updateDocument request', ['index' => $index]); + $this->logger->debug('updateDocument request', ['index' => $index]); $document = $this->filesService->updateDocument($index); - $this->debug('updateDocument result', ['index' => $index, 'document' => $document]); + $this->logger->debug('updateDocument result', ['index' => $index, 'document' => $document]); $this->updateRunnerInfo('info', $document->getMimetype()); return $document; diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php index bb87e833..ba73f551 100644 --- a/lib/Service/ConfigService.php +++ b/lib/Service/ConfigService.php @@ -73,28 +73,10 @@ class ConfigService { self::FILES_OPEN_RESULT_DIRECTLY => '0' ]; - - /** @var IConfig */ - private $config; - - /** @var string */ - private $userId; - - /** @var MiscService */ - private $miscService; - - - /** - * ConfigService constructor. - * - * @param IConfig $config - * @param string $userId - * @param MiscService $miscService - */ - public function __construct(IConfig $config, $userId, MiscService $miscService) { - $this->config = $config; - $this->userId = $userId; - $this->miscService = $miscService; + public function __construct( + private IConfig $config, + private ?string $userId + ) { } diff --git a/lib/Service/ExtensionService.php b/lib/Service/ExtensionService.php index 63245893..ce8fe781 100644 --- a/lib/Service/ExtensionService.php +++ b/lib/Service/ExtensionService.php @@ -1,8 +1,6 @@ eventDispatcher = $eventDispatcher; - $this->configService = $configService; - $this->miscService = $miscService; } diff --git a/lib/Service/ExternalFilesService.php b/lib/Service/ExternalFilesService.php index 0af4a36d..51781b94 100644 --- a/lib/Service/ExternalFilesService.php +++ b/lib/Service/ExternalFilesService.php @@ -1,8 +1,6 @@ rootFolder = $rootFolder; - $this->appManager = $appManager; - $this->userManager = $userManager; - $this->groupManager = $groupManager; - $this->shareManager = $shareManager; - - $this->localFilesService = $localFilesService; - - $this->configService = $configService; - $this->miscService = $miscService; - $this->setup('app', Application::APP_ID); } @@ -134,10 +76,10 @@ public function initExternalFilesForUser(string $userId) { return; } - $this->debug('initExternalFilesForUser', ['userId' => $userId]); + $this->logger->debug('initExternalFilesForUser', ['userId' => $userId]); $this->userGlobalStoragesService = OC::$server->getUserGlobalStoragesService(); $this->globalStoragesService = OC::$server->getGlobalStoragesService(); - $this->debug( + $this->logger->debug( 'initExternalFilesForUser result', [ 'userGlobalStoragesService' => is_null($this->userGlobalStoragesService), diff --git a/lib/Service/FilesService.php b/lib/Service/FilesService.php index 47cda383..0098a75f 100644 --- a/lib/Service/FilesService.php +++ b/lib/Service/FilesService.php @@ -31,14 +31,12 @@ namespace OCA\Files_FullTextSearch\Service; -use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Logger; use ArtificialOwl\MySmallPhpTools\Traits\TPathTools; use Exception; use OC\FullTextSearch\Model\DocumentAccess; use OC\SystemTag\SystemTagManager; use OC\SystemTag\SystemTagObjectMapper; use OC\User\NoUserException; -use OCA\Files_FullTextSearch\AppInfo\Application; use OCA\Files_FullTextSearch\Exceptions\EmptyUserException; use OCA\Files_FullTextSearch\Exceptions\FileIsNotIndexableException; use OCA\Files_FullTextSearch\Exceptions\FilesNotFoundException; @@ -46,6 +44,7 @@ use OCA\Files_FullTextSearch\Exceptions\KnownFileSourceException; use OCA\Files_FullTextSearch\Model\FilesDocument; use OCA\Files_FullTextSearch\Provider\FilesProvider; +use OCA\Files_FullTextSearch\Tools\Traits\TArrayTools; use OCP\App\IAppManager; use OCP\AppFramework\IAppContainer; use OCP\Comments\ICommentsManager; @@ -68,6 +67,7 @@ use OCP\Lock\LockedException; use OCP\Share\IManager as IShareManager; use OCP\SystemTag\ISystemTag; +use Psr\Log\LoggerInterface; use Throwable; /** @@ -77,8 +77,7 @@ */ class FilesService { use TPathTools; - use TNC22Logger; - + use TArrayTools; public const MIMETYPE_TEXT = 'files_text'; public const MIMETYPE_PDF = 'files_pdf'; @@ -89,120 +88,28 @@ class FilesService { public const CHUNK_TREE_SIZE = 2; + private IRunner $runner; + private int $sumDocuments; - /** @var IAppContainer */ - private $container; - - /** @var IRootFolder */ - private $rootFolder; - - /** @var IUserManager */ - private $userManager; - - /** @var IAppManager */ - private $appManager; - - /** @var IShareManager */ - private $shareManager; - - /** @var IURLGenerator */ - private $urlGenerator; - - /** @var ICommentsManager */ - private $commentsManager; - - /** @var SystemTagObjectMapper */ - private $systemTagObjectMapper; - - /** @var SystemTagManager */ - private $systemTagManager; - - /** @var ConfigService */ - private $configService; - - /** @var LocalFilesService */ - private $localFilesService; - - /** @var ExternalFilesService */ - private $externalFilesService; - - /** @var GroupFoldersService */ - private $groupFoldersService; - - /** @var ExtensionService */ - private $extensionService; - - /** @var IFullTextSearchManager */ - private $fullTextSearchManager; - - /** @var MiscService */ - private $miscService; - - /** @var IRunner */ - private $runner; - - /** @var int */ - private $sumDocuments; - - - /** - * FilesService constructor. - * - * @param IAppContainer $container - * @param IRootFolder $rootFolder - * @param IAppManager $appManager - * @param IUserManager $userManager - * @param IShareManager $shareManager - * @param IURLGenerator $urlGenerator - * @param ICommentsManager $commentsManager - * @param ConfigService $configService - * @param LocalFilesService $localFilesService - * @param ExternalFilesService $externalFilesService - * @param GroupFoldersService $groupFoldersService - * @param ExtensionService $extensionService - * @param IFullTextSearchManager $fullTextSearchManager - * @param MiscService $miscService - * - * @internal param IProviderFactory $factory - */ public function __construct( - IAppContainer $container, - IRootFolder $rootFolder, - IAppManager $appManager, - IUserManager $userManager, - IShareManager $shareManager, - IURLGenerator $urlGenerator, - ICommentsManager $commentsManager, - SystemTagObjectMapper $systemTagObjectMapper, - SystemTagManager $systemTagManager, - ConfigService $configService, - LocalFilesService $localFilesService, - ExternalFilesService $externalFilesService, - GroupFoldersService $groupFoldersService, - ExtensionService $extensionService, - IFullTextSearchManager $fullTextSearchManager, - MiscService $miscService + private IAppContainer $container, + private IRootFolder $rootFolder, + private IAppManager $appManager, + private IUserManager $userManager, + private IShareManager $shareManager, + private IURLGenerator $urlGenerator, + private ICommentsManager $commentsManager, + private SystemTagObjectMapper $systemTagObjectMapper, + private SystemTagManager $systemTagManager, + private ConfigService $configService, + private LocalFilesService $localFilesService, + private ExternalFilesService $externalFilesService, + private GroupFoldersService $groupFoldersService, + private ExtensionService $extensionService, + private IFullTextSearchManager $fullTextSearchManager, + private LoggerInterface $logger, ) { - $this->container = $container; - $this->rootFolder = $rootFolder; - $this->appManager = $appManager; - $this->userManager = $userManager; - $this->shareManager = $shareManager; - $this->urlGenerator = $urlGenerator; - $this->commentsManager = $commentsManager; - $this->systemTagObjectMapper = $systemTagObjectMapper; - $this->systemTagManager = $systemTagManager; - - $this->configService = $configService; - $this->localFilesService = $localFilesService; - $this->externalFilesService = $externalFilesService; - $this->groupFoldersService = $groupFoldersService; - $this->extensionService = $extensionService; - $this->fullTextSearchManager = $fullTextSearchManager; - - $this->miscService = $miscService; - $this->setup('app', Application::APP_ID); } @@ -232,20 +139,19 @@ public function getChunksFromUser(string $userId, IIndexOptions $indexOptions): } catch (NotFoundException $e) { return []; } catch (Throwable $e) { - $this->log(2, 'Issue while retrieving rootFolder for ' . $userId); - + $this->logger->warning('Issue while retrieving rootFolder for ' . $userId, ['exception' => $e]); return []; } if ($files instanceof Folder) { - $this->debug('object from getChunksFromUser is a Folder'); + $this->logger->debug('object from getChunksFromUser is a Folder'); $chunks = $this->getChunksFromDirectory($userId, $files); - $this->debug('getChunksFromUser result', ['chunks' => $chunks]); + $this->logger->debug('getChunksFromUser result', ['chunks' => $chunks]); return $chunks; } - $this->debug('object from getChunksFromUser is not a Folder', ['path' => $files->getPath()]); + $this->logger->debug('object from getChunksFromUser is not a Folder', ['path' => $files->getPath()]); return [$this->getPathFromRoot($files->getPath(), $userId, true)]; } @@ -264,7 +170,7 @@ private function getChunksFromDirectory(string $userId, Folder $node, int $level $entries = []; $level++; - $this->debug('getChunksFromDirectory', ['userId' => $userId, 'level' => $level]); + $this->logger->debug('getChunksFromDirectory', ['userId' => $userId, 'level' => $level]); $files = $node->getDirectoryListing(); if (empty($files)) { $entries[] = $this->getPathFromRoot($node->getPath(), $userId, true); @@ -280,7 +186,7 @@ private function getChunksFromDirectory(string $userId, Folder $node, int $level } } - $this->debug( + $this->logger->debug( 'getChunksFromDirectory result', [ 'userId' => $userId, @@ -313,12 +219,12 @@ public function getFilesFromUser(string $userId, string $chunk): array { $result = []; if ($files instanceof Folder) { - $this->debug('object from getFilesFromUser is a Folder', ['chunk' => $chunk]); + $this->logger->debug('object from getFilesFromUser is a Folder', ['chunk' => $chunk]); $result = $this->generateFilesDocumentFromParent($userId, $files); $result = array_merge($result, $this->getFilesFromDirectory($userId, $files)); } else { - $this->debug('object from getFilesFromUser is a File', ['chunk' => $chunk]); + $this->logger->debug('object from getFilesFromUser is a File', ['chunk' => $chunk]); try { $result[] = $this->generateFilesDocumentFromFile($userId, $files); } catch (FileIsNotIndexableException $e) { @@ -377,8 +283,7 @@ public function getFilesFromDirectory(string $userId, Folder $node): array { if ($file->getType() === FileInfo::TYPE_FOLDER) { /** @var $file Folder */ - $documents = - array_merge($documents, $this->getFilesFromDirectory($userId, $file)); + $documents = array_merge($documents, $this->getFilesFromDirectory($userId, $file)); } } @@ -390,7 +295,7 @@ public function getFilesFromDirectory(string $userId, Folder $node): array { * @param string $userId */ private function initFileSystems(string $userId) { - $this->debug('initFileSystems', ['userId' => $userId]); + $this->logger->debug('initFileSystems', ['userId' => $userId]); if ($userId === '') { return; @@ -501,7 +406,7 @@ private function generateFilesDocumentFromFile(string $viewerId, Node $file): Fi ] ); } else { - $this->log(2, 'stat() on File #' . $file->getId() . ' is not an array: ' . json_encode($stat)); + $this->logger->warning('stat() on File #' . $file->getId() . ' is not an array: ' . json_encode($stat)); } return $document; @@ -617,10 +522,7 @@ public function generateDocument(FilesDocument $document) { // TODO - update $document with a error status instead of just ignore ! $document->getIndex() ->setStatus(IIndex::INDEX_IGNORE); - $this->miscService->log( - 'Exception while generateDocument: ' . $e->getMessage() . ' (' . get_class($e) . ') at ' - . $e->getFile() . ' line ' . $e->getLine() - ); + $this->logger->warning('Exception while generateDocument', ['exception' => $e]); } } @@ -853,12 +755,10 @@ private function updateShareNames(FilesDocument $document, Node $file): array { } $path = $this->getPathFromViewerId($file->getId(), $username); - $shareNames[$this->miscService->secureUsername($username)] = + $shareNames[$this->secureUsername($username)] = (!is_string($path)) ? $path = '' : $path; } catch (Throwable $e) { - $this->miscService->log( - 'Issue while getting information on documentId:' . $document->getId(), 0 - ); + $this->logger->warning('Issue while getting information on documentId:' . $document->getId(), ['exception' => $e]); } } @@ -1265,14 +1165,6 @@ private function manageContentErrorException(IIndexDocument $document, Throwable $t->getMessage(), IIndex::ERROR_SEV_3 ); - - $trace = $t->getTrace(); - if (is_array($trace)) { - $trace = json_encode($trace); - } - if (is_string($trace)) { - $this->miscService->log($trace, 0); - } } @@ -1375,7 +1267,7 @@ private function getPathFromRoot(string $path, string $userId, bool $entrySlash } $result = (($entrySlash) ? '/' : '') . $path; - $this->debug( + $this->logger->debug( 'getPathFromRoot', [ 'path' => $path, 'userId' => $userId, @@ -1386,4 +1278,8 @@ private function getPathFromRoot(string $path, string $userId, bool $entrySlash return $result; } + + public function secureUsername(string $username): string { + return str_replace('.', '\.', $username); + } } diff --git a/lib/Service/MiscService.php b/lib/Service/MiscService.php deleted file mode 100644 index 08e11b14..00000000 --- a/lib/Service/MiscService.php +++ /dev/null @@ -1,80 +0,0 @@ - - * @copyright 2018 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - -namespace OCA\Files_FullTextSearch\Service; - -use OCA\Files_FullTextSearch\AppInfo\Application; -use OCP\ILogger; - -/** - * Class MiscService - * - * @package OCA\Files_FullTextSearch\Service - */ -class MiscService { - - /** @var ILogger */ - private $logger; - - - /** - * MiscService constructor. - * - * @param ILogger $logger - */ - public function __construct(ILogger $logger) { - $this->logger = $logger; - } - - - /** - * @param string $message - * @param int $level - */ - public function log(string $message, int $level = 2) { - $data = array( - 'app' => Application::APP_ID, - 'level' => $level - ); - - $this->logger->log($level, $message, $data); - } - - - /** - * @param string $username - * - * @return string - */ - public function secureUsername(string $username): string { - return str_replace('.', '\.', $username); - } -} diff --git a/lib/Service/SearchService.php b/lib/Service/SearchService.php index 333dfba0..61a6404b 100644 --- a/lib/Service/SearchService.php +++ b/lib/Service/SearchService.php @@ -41,6 +41,7 @@ use OCP\FullTextSearch\Model\ISearchResult; use OCP\IURLGenerator; use OCP\IUserSession; +use Psr\Log\LoggerInterface; /** * Class SearchService @@ -50,56 +51,19 @@ class SearchService { use TPathTools; + private string $userId; - /** @var string */ - private $userId; - - /** @var IMimeTypeDetector */ - private $mimeTypeDetector; - - /** @var IURLGenerator */ - private $urlGenerator; - - /** @var FilesService */ - private $filesService; - - /** @var ConfigService */ - private $configService; - - /** @var ExtensionService */ - private $extensionService; - - /** @var MiscService */ - private $miscService; - - - /** - * SearchService constructor. - * - * @param IUserSession $userSession - * @param IMimeTypeDetector $mimeTypeDetector - * @param IURLGenerator $urlGenerator - * @param FilesService $filesService - * @param ConfigService $configService - * @param ExtensionService $extensionService - * @param MiscService $miscService - * - * @internal param IProviderFactory $factory - */ public function __construct( - IUserSession $userSession, IMimeTypeDetector $mimeTypeDetector, IUrlGenerator $urlGenerator, - FilesService $filesService, - ConfigService $configService, - ExtensionService $extensionService, MiscService $miscService + IUserSession $userSession, + private IMimeTypeDetector $mimeTypeDetector, + private IUrlGenerator $urlGenerator, + private FilesService $filesService, + private ConfigService $configService, + private ExtensionService $extensionService, + private LoggerInterface $logger, ) { $user = $userSession->getUser(); - $this->userId = (is_null($user)) ? '' : $user->getUID(); - $this->mimeTypeDetector = $mimeTypeDetector; - $this->urlGenerator = $urlGenerator; - $this->filesService = $filesService; - $this->configService = $configService; - $this->extensionService = $extensionService; - $this->miscService = $miscService; + $this->userId = $user?->getUID() ?? ''; } @@ -113,7 +77,7 @@ public function improveSearchRequest(ISearchRequest $request) { $this->searchQueryFiltersExtension($request); $this->searchQueryFiltersSource($request); if ($this->userId === '') { - $this->userId = $this->miscService->secureUsername($request->getAuthor()); + $this->userId = $this->filesService->secureUsername($request->getAuthor()); } $request->addPart('comments'); $this->extensionService->searchRequest($request); @@ -124,7 +88,7 @@ public function improveSearchRequest(ISearchRequest $request) { * @param ISearchRequest $request */ private function searchQueryShareNames(ISearchRequest $request) { - $username = $this->miscService->secureUsername($request->getAuthor()); + $username = $this->filesService->secureUsername($request->getAuthor()); $request->addField('share_names.' . $username); $request->addWildcardField('title'); @@ -141,7 +105,7 @@ private function searchQueryWithinDir(ISearchRequest $request) { return; } - $username = $this->miscService->secureUsername($request->getAuthor()); + $username = $this->filesService->secureUsername($request->getAuthor()); $currentDir = $this->withoutBeginSlash($this->withEndSlash($currentDir)); $request->addRegexFilters( [ @@ -161,7 +125,7 @@ private function searchQueryFiltersExtension(ISearchRequest $request) { return; } - $username = $this->miscService->secureUsername($request->getAuthor()); + $username = $this->filesService->secureUsername($request->getAuthor()); $request->addRegexFilters( [ ['share_names.' . $username => '.*\.' . $extension], @@ -197,7 +161,7 @@ private function searchQueryInOptions(ISearchRequest $request) { $in = $request->getOptionArray('in', []); if (in_array('filename', $in)) { - $username = $this->miscService->secureUsername($request->getAuthor()); + $username = $this->filesService->secureUsername($request->getAuthor()); $request->addLimitField('share_names.' . $username); $request->addLimitField('title'); } @@ -249,10 +213,7 @@ public function improveSearchResult(ISearchResult $searchResult) { $filesDocuments[] = $filesDocument; } catch (Exception $e) { - $this->miscService->log( - 'Exception while improving searchresult: ' . $e->getMessage() . ' - trace: ' - . json_encode($e->getTrace()) - ); + $this->logger->warning('Exception while improving searchresult', ['exception' => $e]); } } @@ -341,13 +302,13 @@ private function setDocumentLinkFile(FilesDocument $document, string $dir, strin return; } - + if ($this->configService->getAppValue(ConfigService::FILES_OPEN_RESULT_DIRECTLY) !== '1') { $link = $this->urlGenerator->linkToRoute('files.view.index', ['dir' => $dir, 'scrollto' => $filename]); } else { $link = $this->urlGenerator->linkToRoute('files.View.showFile', ['fileid' => $document->getId()]); } - + $document->setLink($link); } diff --git a/lib/Service/SettingsService.php b/lib/Service/SettingsService.php deleted file mode 100644 index 9af423e8..00000000 --- a/lib/Service/SettingsService.php +++ /dev/null @@ -1,78 +0,0 @@ - - * @copyright 2018 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - -namespace OCA\Files_FullTextSearch\Service; - -use OCP\IConfig; - -/** - * Class SettingsService - * - * @package OCA\Files_FullTextSearch\Service - */ -class SettingsService { - - - /** @var IConfig */ - private $config; - - /** @var string */ - private $userId; - - /** @var MiscService */ - private $miscService; - - - /** - * SettingsService constructor. - * - * @param IConfig $config - * @param string $userId - * @param MiscService $miscService - */ - public function __construct(IConfig $config, string $userId, MiscService $miscService) { - $this->config = $config; - $this->userId = $userId; - $this->miscService = $miscService; - } - - - /** - * @param array $data - * - * @return bool - */ - public function checkConfig(array $data): bool { -// return false; - - return true; - } -} diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 6a8993a0..30dd537d 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -33,11 +33,7 @@ use Exception; use OCA\Files_FullTextSearch\AppInfo\Application; -use OCA\Files_FullTextSearch\Service\ConfigService; -use OCA\Files_FullTextSearch\Service\MiscService; use OCP\AppFramework\Http\TemplateResponse; -use OCP\IL10N; -use OCP\IURLGenerator; use OCP\Settings\ISettings; /** @@ -46,40 +42,10 @@ * @package OCA\Files_FullTextSearch\Settings */ class Admin implements ISettings { - - - /** @var IL10N */ - private $l10n; - - /** @var IURLGenerator */ - private $urlGenerator; - - /** @var ConfigService */ - private $configService; - - /** @var MiscService */ - private $miscService; - - - /** - * Admin constructor. - * - * @param IL10N $l10n - * @param IURLGenerator $urlGenerator - * @param ConfigService $configService - * @param MiscService $miscService - */ public function __construct( - IL10N $l10n, IURLGenerator $urlGenerator, ConfigService $configService, - MiscService $miscService ) { - $this->l10n = $l10n; - $this->urlGenerator = $urlGenerator; - $this->configService = $configService; - $this->miscService = $miscService; } - /** * @return TemplateResponse * @throws Exception