mirror of
https://github.com/nextcloud/server.git
synced 2026-06-14 19:20:35 -04:00
chore: deduplicate trashbin row delete logic
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
8355915b7a
commit
450f2e0d4e
1 changed files with 13 additions and 28 deletions
|
|
@ -303,15 +303,6 @@ class Trashbin implements IEventListener {
|
|||
// there is still a possibility that the file has been deleted by a remote user
|
||||
$deletedBy = self::overwriteDeletedBy($user);
|
||||
|
||||
$deleteTrashRow = static function () use ($owner, $filename, $timestamp): void {
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->delete('files_trash')
|
||||
->where($query->expr()->eq('user', $query->createNamedParameter($owner)))
|
||||
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
|
||||
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
|
||||
$query->executeStatement();
|
||||
};
|
||||
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->insert('files_trash')
|
||||
->setValue('id', $query->createNamedParameter($filename))
|
||||
|
|
@ -395,7 +386,7 @@ class Trashbin implements IEventListener {
|
|||
'timestamp' => $timestamp,
|
||||
]
|
||||
);
|
||||
$deleteTrashRow();
|
||||
self::deleteTrashRow($user, $filename, $timestamp);
|
||||
if ($trashStorage->file_exists($trashInternalPath)) {
|
||||
if ($trashStorage->is_dir($trashInternalPath)) {
|
||||
$trashStorage->rmdir($trashInternalPath);
|
||||
|
|
@ -599,12 +590,7 @@ class Trashbin implements IEventListener {
|
|||
self::restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp);
|
||||
|
||||
if ($timestamp) {
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->delete('files_trash')
|
||||
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
|
||||
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
|
||||
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
|
||||
$query->executeStatement();
|
||||
self::deleteTrashRow($user, $filename, $timestamp);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -754,12 +740,7 @@ class Trashbin implements IEventListener {
|
|||
$node = $userRoot->get('/files_trashbin/files/' . $file);
|
||||
} catch (NotFoundException $e) {
|
||||
if ($timestamp) {
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->delete('files_trash')
|
||||
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
|
||||
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
|
||||
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
|
||||
$query->executeStatement();
|
||||
self::deleteTrashRow($user, $filename, $timestamp);
|
||||
}
|
||||
return $size;
|
||||
}
|
||||
|
|
@ -775,17 +756,21 @@ class Trashbin implements IEventListener {
|
|||
self::emitTrashbinPostDelete('/files_trashbin/files/' . $file);
|
||||
|
||||
if ($timestamp) {
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->delete('files_trash')
|
||||
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
|
||||
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
|
||||
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
|
||||
$query->executeStatement();
|
||||
self::deleteTrashRow($user, $filename, $timestamp);
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
private static function deleteTrashRow(string $user, string $filename, int $timestamp): void {
|
||||
$query = Server::get(IDBConnection::class)->getQueryBuilder();
|
||||
$query->delete('files_trash')
|
||||
->where($query->expr()->eq('user', $query->createNamedParameter($user)))
|
||||
->andWhere($query->expr()->eq('id', $query->createNamedParameter($filename)))
|
||||
->andWhere($query->expr()->eq('timestamp', $query->createNamedParameter($timestamp)));
|
||||
$query->executeStatement();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $file
|
||||
* @param string $filename
|
||||
|
|
|
|||
Loading…
Reference in a new issue