From 2ec84c778a6139a780762528edc3ac999e5609e6 Mon Sep 17 00:00:00 2001 From: binsky Date: Sun, 15 Aug 2021 18:00:28 +0200 Subject: [PATCH] use less memory hungry account mover strategy Signed-off-by: binsky --- controller/admincontroller.php | 5 +++-- lib/Db/FileMapper.php | 5 ++--- lib/Service/FileService.php | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/controller/admincontroller.php b/controller/admincontroller.php index 5d072f1b..2593fbf0 100644 --- a/controller/admincontroller.php +++ b/controller/admincontroller.php @@ -107,8 +107,9 @@ class AdminController extends ApiController { $this->vaultService->updateVault($vault); } - $files = $this->fileService->getFilesFromUser($source_account); - foreach ($files as $file) { + $fileGuids = $this->fileService->getFileGuidsFromUser($source_account); + foreach ($fileGuids as $fileGuid) { + $file = $this->fileService->getFileByGuid($fileGuid, $source_account); $file->setUserId($destination_account); $this->fileService->updateFile($file); } diff --git a/lib/Db/FileMapper.php b/lib/Db/FileMapper.php index eb7bb029..bb590163 100644 --- a/lib/Db/FileMapper.php +++ b/lib/Db/FileMapper.php @@ -123,14 +123,13 @@ class FileMapper extends QBMapper { return $this->update($file); } - /** * @param string $user_id * @return Entity[] */ - public function getFilesFromUser(string $user_id) { + public function getFileGuidsFromUser(string $user_id) { $qb = $this->db->getQueryBuilder(); - $qb->select('*') + $qb->select('guid') ->from(self::TABLE_NAME) ->where($qb->expr()->eq('user_id', $qb->createNamedParameter($user_id, IQueryBuilder::PARAM_STR))); diff --git a/lib/Service/FileService.php b/lib/Service/FileService.php index 6663797c..229d9318 100644 --- a/lib/Service/FileService.php +++ b/lib/Service/FileService.php @@ -114,17 +114,17 @@ class FileService { } /** - * Update file + * Get array of all file guids * * @param string $userId - * @return File[] + * @return string[] * @throws Exception */ - public function getFilesFromUser(string $userId) { - $files = $this->fileMapper->getFilesFromUser($userId); + public function getFileGuidsFromUser(string $userId) { + $files = $this->fileMapper->getFileGuidsFromUser($userId); $results = array(); - foreach ($files as $file) { - array_push($results, $this->encryptService->decryptFile($file)); + foreach ($files as $fileGuid) { + array_push($results, $fileGuid->getGuid()); } return $results; }