Skip to content

Commit 7eae0e5

Browse files
committed
chore: deduplicate trashbin row delete logic
Signed-off-by: Robin Appelman <robin@icewind.nl>
1 parent b7150ad commit 7eae0e5

1 file changed

Lines changed: 13 additions & 28 deletions

File tree

apps/files_trashbin/lib/Trashbin.php

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -306,15 +306,6 @@ public static function move2trash($file_path, $ownerOnly = false) {
306306
// there is still a possibility that the file has been deleted by a remote user
307307
$deletedBy = self::overwriteDeletedBy($user);
308308

309-
$deleteTrashRow = static function () use ($owner, $filename, $timestamp): void {
310-
$query = Server::get(IDBConnection::class)->getQueryBuilder();
311-
$query->delete('files_trash')
312-
->where($query->expr()->eq('user', $query->createNamedParameter($owner)))
313-
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
314-
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
315-
$query->executeStatement();
316-
};
317-
318309
$query = Server::get(IDBConnection::class)->getQueryBuilder();
319310
$query->insert('files_trash')
320311
->setValue('id', $query->createNamedParameter($filename))
@@ -398,7 +389,7 @@ public static function move2trash($file_path, $ownerOnly = false) {
398389
'timestamp' => $timestamp,
399390
]
400391
);
401-
$deleteTrashRow();
392+
self::deleteTrashRow($user, $filename, $timestamp);
402393
if ($trashStorage->file_exists($trashInternalPath)) {
403394
if ($trashStorage->is_dir($trashInternalPath)) {
404395
$trashStorage->rmdir($trashInternalPath);
@@ -606,12 +597,7 @@ public static function restore($file, $filename, $timestamp) {
606597
self::restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp);
607598

608599
if ($timestamp) {
609-
$query = Server::get(IDBConnection::class)->getQueryBuilder();
610-
$query->delete('files_trash')
611-
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
612-
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
613-
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
614-
$query->executeStatement();
600+
self::deleteTrashRow($user, $filename, $timestamp);
615601
}
616602

617603
return true;
@@ -761,12 +747,7 @@ public static function delete($filename, $user, $timestamp = null) {
761747
$node = $userRoot->get('/files_trashbin/files/' . $file);
762748
} catch (NotFoundException $e) {
763749
if ($timestamp) {
764-
$query = Server::get(IDBConnection::class)->getQueryBuilder();
765-
$query->delete('files_trash')
766-
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
767-
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
768-
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
769-
$query->executeStatement();
750+
self::deleteTrashRow($user, $filename, $timestamp);
770751
}
771752
return $size;
772753
}
@@ -782,17 +763,21 @@ public static function delete($filename, $user, $timestamp = null) {
782763
self::emitTrashbinPostDelete('/files_trashbin/files/' . $file);
783764

784765
if ($timestamp) {
785-
$query = Server::get(IDBConnection::class)->getQueryBuilder();
786-
$query->delete('files_trash')
787-
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
788-
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
789-
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
790-
$query->executeStatement();
766+
self::deleteTrashRow($user, $filename, $timestamp);
791767
}
792768

793769
return $size;
794770
}
795771

772+
private static function deleteTrashRow(string $user, string $filename, int $timestamp): void {
773+
$query = Server::get(IDBConnection::class)->getQueryBuilder();
774+
$query->delete('files_trash')
775+
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
776+
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
777+
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
778+
$query->executeStatement();
779+
}
780+
796781
/**
797782
* @param string $file
798783
* @param string $filename

0 commit comments

Comments
 (0)