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()); } /**