diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php index e8f17ac5..0980ed93 100644 --- a/lib/Db/CoreRequestBuilder.php +++ b/lib/Db/CoreRequestBuilder.php @@ -75,7 +75,7 @@ public function removeFromMigrations() { $qb->delete('migrations'); $qb->where($qb->exprLimitToDBField('app', 'files_lock', true, true)); - $qb->execute(); + $qb->executeStatement(); } /** @@ -85,6 +85,6 @@ public function removeFromJobs() { $qb = $this->getQueryBuilder(); $qb->delete('jobs'); $qb->where($qb->exprLimitToDBField('class', 'OCA\FilesLock\Cron\Unlock', true, true)); - $qb->execute(); + $qb->executeStatement(); } } diff --git a/lib/Db/LocksRequest.php b/lib/Db/LocksRequest.php index 50888ec0..af10b139 100644 --- a/lib/Db/LocksRequest.php +++ b/lib/Db/LocksRequest.php @@ -9,11 +9,10 @@ namespace OCA\FilesLock\Db; -use Doctrine\DBAL\Exception\UniqueConstraintViolationException; -use Exception; use OCA\FilesLock\Exceptions\LockNotFoundException; use OCA\FilesLock\Model\FileLock; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\DB\Exception; use OCP\DB\QueryBuilder\IQueryBuilder; /** @@ -25,7 +24,7 @@ class LocksRequest extends LocksRequestBuilder { /** * @param FileLock $lock */ - public function save(FileLock $lock) { + public function save(FileLock $lock): void { $qb = $this->getLocksInsertSql(); $qb->setValue('user_id', $qb->createNamedParameter($lock->getOwner())) ->setValue('file_id', $qb->createNamedParameter($lock->getFileId())) @@ -36,13 +35,17 @@ public function save(FileLock $lock) { ->setValue('owner', $qb->createNamedParameter($lock->getDisplayName())); try { - $qb->execute(); + $qb->executeStatement(); $lock->setId($qb->getLastInsertId()); - } catch (UniqueConstraintViolationException $e) { + } catch (Exception $e) { + if ($e->getReason() === Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION) { + return; + } + throw $e; } } - public function update(FileLock $lock) { + public function update(FileLock $lock): void { $qb = $this->getLocksUpdateSql(); $qb->set('token', $qb->createNamedParameter($lock->getToken())) ->set('ttl', $qb->createNamedParameter($lock->getTimeout())) @@ -62,7 +65,7 @@ public function delete(FileLock $lock) { $qb = $this->getLocksDeleteSql(); $qb->limitToId($lock->getId()); - $qb->execute(); + $qb->executeStatement(); } @@ -77,7 +80,7 @@ public function removeIds(array $ids) { $qb = $this->getLocksDeleteSql(); $qb->limitToIds($ids); - $qb->execute(); + $qb->executeStatement(); } diff --git a/lib/Tools/Db/ExtendedQueryBuilder.php b/lib/Tools/Db/ExtendedQueryBuilder.php index 7f45f405..42be92b7 100644 --- a/lib/Tools/Db/ExtendedQueryBuilder.php +++ b/lib/Tools/Db/ExtendedQueryBuilder.php @@ -964,7 +964,7 @@ private function parseSimpleSelectSql( * @throws RowNotFoundException */ public function getRow(callable $method, string $object = '', array $params = []): IQueryRow { - $cursor = $this->execute(); + $cursor = $this->executeQuery(); $data = $cursor->fetch(); $cursor->closeCursor(); @@ -985,7 +985,7 @@ public function getRow(callable $method, string $object = '', array $params = [] */ public function getRows(callable $method, string $object = '', array $params = []): array { $rows = []; - $cursor = $this->execute(); + $cursor = $this->executeQuery(); while ($data = $cursor->fetch()) { try { $rows[] = $method($data, $this, $object, $params);