Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2022-05-06 18:23:22 +0300
committerJoas Schilling <coding@schilljs.com>2022-05-06 18:23:22 +0300
commit9accf68da413fc78d67251fd82e656889f0c7ce7 (patch)
treed79ef64ea916b8e93981b8435bb3b36680e7e6a9
parent5b6db43ac93e993a30236843540cfbe6ae5eba2e (diff)
Move setSIPEnabled to room servicetechdebt/6235/move-setSIPEnabled
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r--lib/Controller/RoomController.php2
-rw-r--r--lib/Room.php39
-rw-r--r--lib/Service/RoomService.php36
3 files changed, 41 insertions, 36 deletions
diff --git a/lib/Controller/RoomController.php b/lib/Controller/RoomController.php
index fd11f8ad9..a7ea22572 100644
--- a/lib/Controller/RoomController.php
+++ b/lib/Controller/RoomController.php
@@ -1660,7 +1660,7 @@ class RoomController extends AEnvironmentAwareController {
return new DataResponse([], Http::STATUS_PRECONDITION_FAILED);
}
- if (!$this->room->setSIPEnabled($state)) {
+ if (!$this->roomService->setSIPEnabled($this->room, $state)) {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
}
diff --git a/lib/Room.php b/lib/Room.php
index 962492481..f69f548ec 100644
--- a/lib/Room.php
+++ b/lib/Room.php
@@ -267,6 +267,10 @@ class Room {
return $this->sipEnabled;
}
+ public function setSIPEnabled(int $sipEnabled): void {
+ $this->sipEnabled = $sipEnabled;
+ }
+
public function getLobbyTimer(): ?\DateTime {
$this->validateTimer();
return $this->lobbyTimer;
@@ -970,39 +974,4 @@ class Room {
return true;
}
-
- public function setSIPEnabled(int $newSipEnabled): bool {
- $oldSipEnabled = $this->sipEnabled;
-
- if ($newSipEnabled === $oldSipEnabled) {
- return false;
- }
-
- if (!in_array($this->getType(), [self::TYPE_GROUP, self::TYPE_PUBLIC], true)) {
- return false;
- }
-
- if (!in_array($newSipEnabled, [Webinary::SIP_ENABLED_NO_PIN, Webinary::SIP_ENABLED, Webinary::SIP_DISABLED], true)) {
- return false;
- }
-
- if (preg_match(self::SIP_INCOMPATIBLE_REGEX, $this->token)) {
- return false;
- }
-
- $event = new ModifyRoomEvent($this, 'sipEnabled', $newSipEnabled, $oldSipEnabled);
- $this->dispatcher->dispatch(self::EVENT_BEFORE_SIP_ENABLED_SET, $event);
-
- $update = $this->db->getQueryBuilder();
- $update->update('talk_rooms')
- ->set('sip_enabled', $update->createNamedParameter($newSipEnabled, IQueryBuilder::PARAM_INT))
- ->where($update->expr()->eq('id', $update->createNamedParameter($this->getId(), IQueryBuilder::PARAM_INT)));
- $update->executeStatement();
-
- $this->sipEnabled = $newSipEnabled;
-
- $this->dispatcher->dispatch(self::EVENT_AFTER_SIP_ENABLED_SET, $event);
-
- return true;
- }
}
diff --git a/lib/Service/RoomService.php b/lib/Service/RoomService.php
index ec3f98ac5..d00a421c2 100644
--- a/lib/Service/RoomService.php
+++ b/lib/Service/RoomService.php
@@ -31,6 +31,7 @@ use OCA\Talk\Manager;
use OCA\Talk\Model\Attendee;
use OCA\Talk\Participant;
use OCA\Talk\Room;
+use OCA\Talk\Webinary;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IDBConnection;
@@ -216,6 +217,41 @@ class RoomService {
return true;
}
+ public function setSIPEnabled(Room $room, int $newSipEnabled): bool {
+ $oldSipEnabled = $room->getSIPEnabled();
+
+ if ($newSipEnabled === $oldSipEnabled) {
+ return false;
+ }
+
+ if (!in_array($room->getType(), [Room::TYPE_GROUP, Room::TYPE_PUBLIC], true)) {
+ return false;
+ }
+
+ if (!in_array($newSipEnabled, [Webinary::SIP_ENABLED_NO_PIN, Webinary::SIP_ENABLED, Webinary::SIP_DISABLED], true)) {
+ return false;
+ }
+
+ if (preg_match(Room::SIP_INCOMPATIBLE_REGEX, $room->getToken())) {
+ return false;
+ }
+
+ $event = new ModifyRoomEvent($room, 'sipEnabled', $newSipEnabled, $oldSipEnabled);
+ $this->dispatcher->dispatch(Room::EVENT_BEFORE_SIP_ENABLED_SET, $event);
+
+ $update = $this->db->getQueryBuilder();
+ $update->update('talk_rooms')
+ ->set('sip_enabled', $update->createNamedParameter($newSipEnabled, IQueryBuilder::PARAM_INT))
+ ->where($update->expr()->eq('id', $update->createNamedParameter($room->getId(), IQueryBuilder::PARAM_INT)));
+ $update->executeStatement();
+
+ $room->setSIPEnabled($newSipEnabled);
+
+ $this->dispatcher->dispatch(Room::EVENT_AFTER_SIP_ENABLED_SET, $event);
+
+ return true;
+ }
+
public function verifyPassword(Room $room, string $password): array {
$event = new VerifyRoomPasswordEvent($room, $password);
$this->dispatcher->dispatch(Room::EVENT_PASSWORD_VERIFY, $event);