use less memory hungry account mover strategy

Signed-off-by: binsky <timo@binsky.org>
This commit is contained in:
binsky 2021-08-15 18:00:28 +02:00
parent a45d33d89e
commit 2ec84c778a
3 changed files with 11 additions and 11 deletions

View file

@ -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);
}

View file

@ -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)));

View file

@ -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;
}