From 1adc9d2aabeb773c291f718f508a15ecfb1c4d85 Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Wed, 23 Nov 2022 14:57:30 +0100 Subject: [PATCH] Delete file versions entries in DB when node is deleted Signed-off-by: Louis Chemineau --- apps/files_versions/lib/Db/VersionsMapper.php | 9 +++++++++ apps/files_versions/lib/Hooks.php | 1 + 2 files changed, 10 insertions(+) diff --git a/apps/files_versions/lib/Db/VersionsMapper.php b/apps/files_versions/lib/Db/VersionsMapper.php index 3da684b7d77..b1cf202a6ce 100644 --- a/apps/files_versions/lib/Db/VersionsMapper.php +++ b/apps/files_versions/lib/Db/VersionsMapper.php @@ -29,6 +29,7 @@ namespace OCA\Files_Versions\Db; use OCA\Files_Versions\Db\VersionEntity; use OCP\IDBConnection; use OCP\AppFramework\Db\QBMapper; +use OCP\DB\IResult; /** * @extends QBMapper @@ -61,4 +62,12 @@ class VersionsMapper extends QBMapper { return $this->findEntity($qb); } + + public function deleteAllVersionsForFileId(int $fileId): int { + $qb = $this->db->getQueryBuilder(); + + return $qb->delete($this->getTableName()) + ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) + ->executeStatement(); + } } diff --git a/apps/files_versions/lib/Hooks.php b/apps/files_versions/lib/Hooks.php index ebb0974c4ed..ba22349e221 100644 --- a/apps/files_versions/lib/Hooks.php +++ b/apps/files_versions/lib/Hooks.php @@ -144,6 +144,7 @@ class Hooks implements IEventListener { public function remove_hook(Node $node): void { $path = $this->userFolder->getRelativePath($node->getPath()); Storage::delete($path); + $this->versionsMapper->deleteAllVersionsForFileId($node->getId()); } /**