From 7a7fb0dae5935622bb9466e8fe5ccaaee7469c5a Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 28 Jun 2023 21:12:05 +0200 Subject: [PATCH] style: cleanup and remove duplicated code Signed-off-by: Arthur Schiwon --- lib/Controller/PageController.php | 12 ------ .../Settings/PhotosLocationSettings.vue | 8 ++-- src/utils/fileUtils.js | 38 ++++++++----------- 3 files changed, 19 insertions(+), 39 deletions(-) diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 9a32472e5..346e18cc3 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -51,8 +51,6 @@ use OCP\AppFramework\Services\IInitialState; use OCP\IRequest; use OCP\IUserSession; -use OCP\SystemTag\ISystemTagManager; -use OCP\SystemTag\ISystemTagObjectMapper; use OCP\Util; use Psr\Log\LoggerInterface; @@ -66,13 +64,8 @@ class PageController extends Controller { private ICacheFactory $cacheFactory; private IL10N $l10n; private ICache $nomediaPathsCache; - private ICache $tagCountsCache; private LoggerInterface $logger; - private ISystemTagObjectMapper $tagObjectMapper; - - private ISystemTagManager $tagManager; - public function __construct( IRequest $request, IAppManager $appManager, @@ -83,8 +76,6 @@ public function __construct( IRootFolder $rootFolder, ICacheFactory $cacheFactory, LoggerInterface $logger, - ISystemTagObjectMapper $tagObjectMapper, - ISystemTagManager $tagManager, IL10N $l10n ) { parent::__construct(Application::APP_ID, $request); @@ -97,10 +88,7 @@ public function __construct( $this->rootFolder = $rootFolder; $this->cacheFactory = $cacheFactory; $this->nomediaPathsCache = $this->cacheFactory->createLocal('photos:nomedia-paths'); - $this->tagCountsCache = $this->cacheFactory->createLocal('photos:tag-counts'); $this->logger = $logger; - $this->tagObjectMapper = $tagObjectMapper; - $this->tagManager = $tagManager; $this->l10n = $l10n; } diff --git a/src/components/Settings/PhotosLocationSettings.vue b/src/components/Settings/PhotosLocationSettings.vue index f2d737920..49bad85a4 100644 --- a/src/components/Settings/PhotosLocationSettings.vue +++ b/src/components/Settings/PhotosLocationSettings.vue @@ -50,16 +50,16 @@ import UserConfig from '../../mixins/UserConfig.js' export default { name: 'PhotosLocationSettings', - mixins: [ - UserConfig, - ], - components: { NcButton, NcTextField, Folder, }, + mixins: [ + UserConfig, + ], + methods: { debounceSelectPhotosFolder: debounce(function() { this.selectPhotosFolder() diff --git a/src/utils/fileUtils.js b/src/utils/fileUtils.js index 94b5998d9..e76670934 100644 --- a/src/utils/fileUtils.js +++ b/src/utils/fileUtils.js @@ -103,22 +103,7 @@ const sortCompare = function(fileInfo1, fileInfo2, key, asc = true) { * @param {object} obj - object to flatten and format. */ function genFileInfo(obj) { - const fileInfo = Object.entries(obj).reduce((fileInfo, [key, data]) => { - // flatten object if any - if (!!data && typeof data === 'object' && !Array.isArray(data)) { - return { ...fileInfo, ...genFileInfo(data) } - } - - // format key and add it to the fileInfo - switch (data) { - case 'false': - return { ...fileInfo, [camelcase(key)]: false } - case 'true': - return { ...fileInfo, [camelcase(key)]: true } - default: - return { ...fileInfo, [camelcase(key)]: isNumber(data) ? Number(data) : data } - } - }, {}) + const fileInfo = flattenAndFormatObject(obj, genFileInfo) if (fileInfo.filename) { // Adding context @@ -132,24 +117,31 @@ function genFileInfo(obj) { * @param {object} obj - object to flatten and format. */ function extractTagInfo(obj) { - const tagInfo = Object.entries(obj).reduce((tagInfo, [key, data]) => { + return flattenAndFormatObject(obj, extractTagInfo) +} + +/** + * + * @param obj + * @param callback + */ +function flattenAndFormatObject(obj, callback) { + return Object.entries(obj).reduce((resultObj, [key, data]) => { // flatten object if any if (!!data && typeof data === 'object' && !Array.isArray(data)) { - return { ...tagInfo, ...extractTagInfo(data) } + return { ...resultObj, ...callback(data) } } // format key and add it to the tagInfo switch (data) { case 'false': - return { ...tagInfo, [camelcase(key)]: false } + return { ...resultObj, [camelcase(key)]: false } case 'true': - return { ...tagInfo, [camelcase(key)]: true } + return { ...resultObj, [camelcase(key)]: true } default: - return { ...tagInfo, [camelcase(key)]: isNumber(data) ? Number(data) : data } + return { ...resultObj, [camelcase(key)]: isNumber(data) ? Number(data) : data } } }, {}) - - return tagInfo } export { encodeFilePath, extractFilePaths, sortCompare, genFileInfo, extractTagInfo }