From 9307412dc83d7bb31a65b9b5809b3f7573a99372 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 24 Jun 2021 11:26:10 +0200 Subject: Adjust more database calls to the new methods Signed-off-by: Joas Schilling --- lib/MatterbridgeManager.php | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/MatterbridgeManager.php b/lib/MatterbridgeManager.php index 4afd4eda6..5ce231a49 100644 --- a/lib/MatterbridgeManager.php +++ b/lib/MatterbridgeManager.php @@ -26,6 +26,7 @@ namespace OCA\Talk; use OCA\Talk\Exceptions\RoomNotFoundException; use OCA\Talk\Model\Attendee; use OCA\Talk\Service\ParticipantService; +use OCP\DB\Exception; use OCP\IConfig; use OCP\IDBConnection; use OCP\DB\QueryBuilder\IQueryBuilder; @@ -204,7 +205,7 @@ class MatterbridgeManager { ->from('talk_bridges') ->where($query->expr()->eq('enabled', $query->createNamedParameter(1, IQueryBuilder::PARAM_INT))); - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { $bridge = [ 'enabled' => (bool) $row['enabled'], @@ -761,7 +762,7 @@ class MatterbridgeManager { ->where($query->expr()->eq('enabled', $query->createNamedParameter(1, IQueryBuilder::PARAM_INT))) ->andWhere($query->expr()->gt('pid', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT))); - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { $expectedPidList[] = (int) $row['pid']; } @@ -874,7 +875,7 @@ class MatterbridgeManager { $qb->expr()->eq('room_id', $qb->createNamedParameter($roomId, IQueryBuilder::PARAM_INT)) ) ->setMaxResults(1); - $result = $qb->execute(); + $result = $qb->executeQuery(); $enabled = false; $pid = 0; $jsonValues = '[]'; @@ -911,17 +912,23 @@ class MatterbridgeManager { 'enabled' => $qb->createNamedParameter($intEnabled, IQueryBuilder::PARAM_INT), 'pid' => $qb->createNamedParameter($bridge['pid'], IQueryBuilder::PARAM_INT), ]); - $qb->execute(); - } catch (UniqueConstraintViolationException $e) { - $qb = $this->db->getQueryBuilder(); - $qb->update('talk_bridges'); - $qb->set('json_values', $qb->createNamedParameter($jsonValues, IQueryBuilder::PARAM_STR)); - $qb->set('enabled', $qb->createNamedParameter($intEnabled, IQueryBuilder::PARAM_INT)); - $qb->set('pid', $qb->createNamedParameter($bridge['pid'], IQueryBuilder::PARAM_INT)); - $qb->where( - $qb->expr()->eq('room_id', $qb->createNamedParameter($roomId, IQueryBuilder::PARAM_INT)) - ); - $qb->execute(); + $qb->executeStatement(); + } catch (Exception $e) { + if ($e->getReason() === Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION) { + $qb = $this->db->getQueryBuilder(); + $qb->update('talk_bridges'); + $qb->set('json_values', $qb->createNamedParameter($jsonValues, IQueryBuilder::PARAM_STR)); + $qb->set('enabled', $qb->createNamedParameter($intEnabled, IQueryBuilder::PARAM_INT)); + $qb->set('pid', $qb->createNamedParameter($bridge['pid'], IQueryBuilder::PARAM_INT)); + $qb->where( + $qb->expr()->eq('room_id', $qb->createNamedParameter($roomId, IQueryBuilder::PARAM_INT)) + ); + $qb->executeStatement(); + } else { + $this->logger->error($e->getMessage(), [ + 'exception' => $e, + ]); + } } } -- cgit v1.2.3