From f93b68b76f156274671710cde13938486b490779 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 9 Oct 2024 13:03:09 +0200 Subject: [PATCH] fix(softUndeleteEntry): Only reset index of bookmarks if it is indeed soft-deleted Signed-off-by: Marcel Klehr --- lib/Db/TreeMapper.php | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/Db/TreeMapper.php b/lib/Db/TreeMapper.php index 1be1d849b..7fca58445 100644 --- a/lib/Db/TreeMapper.php +++ b/lib/Db/TreeMapper.php @@ -542,20 +542,21 @@ public function softUndeleteEntry(string $type, int $id, ?int $folderId = null): return; } - // set entry as not deleted - // has to come last to not break findByAncestorFolder - $qb = $this->db->getQueryBuilder(); - $qb - ->update('bookmarks_tree') - ->set('soft_deleted_at', $qb->createNamedParameter(null, IQueryBuilder::PARAM_DATE)) - ->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT))) - ->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_STR))); - if ($folderId !== null) { - $qb->set('index', $qb->createNamedParameter($this->countChildren($folderId))); - $qb->andWhere($qb->expr()->eq('parent_folder', $qb->createNamedParameter($folderId, IQueryBuilder::PARAM_INT))); + if ($this->isEntrySoftDeleted($type, $id, $folderId)) { + // set entry as not deleted + // has to come last to not break findByAncestorFolder + $qb = $this->db->getQueryBuilder(); + $qb + ->update('bookmarks_tree') + ->set('soft_deleted_at', $qb->createNamedParameter(null, IQueryBuilder::PARAM_DATE)) + ->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT))) + ->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_STR))); + if ($folderId !== null) { + $qb->set('index', $qb->createNamedParameter($this->countChildren($folderId))); + $qb->andWhere($qb->expr()->eq('parent_folder', $qb->createNamedParameter($folderId, IQueryBuilder::PARAM_INT))); + } + $qb->executeStatement(); } - $qb->executeStatement(); - } /**