diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2023-01-05 06:58:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-05 06:58:23 +0100 |
commit | c11d5ae46495f9ca9680cc12e35d7b012e0d019e (patch) | |
tree | 799af6ec960d24baca6da1528419d018fb2f0144 /lib | |
parent | 9219d6f7a066ad5b4a93c37a905b4501b47fcbd5 (diff) | |
parent | c08f92ead569d8dc380fb5bf560ef08b04722953 (diff) |
Merge pull request #8525 from nextcloud/feature/move-recording-methods
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/RecordingController.php | 14 | ||||
-rw-r--r-- | lib/Service/RecordingService.php | 26 | ||||
-rw-r--r-- | lib/Service/RoomService.php | 21 |
3 files changed, 30 insertions, 31 deletions
diff --git a/lib/Controller/RecordingController.php b/lib/Controller/RecordingController.php index e87b909d9..b91370639 100644 --- a/lib/Controller/RecordingController.php +++ b/lib/Controller/RecordingController.php @@ -29,7 +29,6 @@ use InvalidArgumentException; use OCA\Talk\Config; use OCA\Talk\Exceptions\UnauthorizedException; use OCA\Talk\Service\RecordingService; -use OCA\Talk\Service\RoomService; use OCA\Talk\Service\SIPBridgeService; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; @@ -39,29 +38,26 @@ class RecordingController extends AEnvironmentAwareController { private Config $talkConfig; private SIPBridgeService $SIPBridgeService; private RecordingService $recordingService; - private RoomService $roomService; public function __construct(string $appName, IRequest $request, Config $talkConfig, SIPBridgeService $SIPBridgeService, - RecordingService $recordingService, - RoomService $roomService) { + RecordingService $recordingService) { parent::__construct($appName, $request); $this->talkConfig = $talkConfig; $this->SIPBridgeService = $SIPBridgeService; $this->recordingService = $recordingService; - $this->roomService = $roomService; } /** * @PublicPage * @RequireModeratorParticipant */ - public function startRecording(int $status): DataResponse { + public function start(int $status): DataResponse { try { - $this->roomService->startRecording($this->room, $status); + $this->recordingService->start($this->room, $status); } catch (InvalidArgumentException $e) { return new DataResponse(['error' => $e->getMessage()], Http::STATUS_BAD_REQUEST); } @@ -72,9 +68,9 @@ class RecordingController extends AEnvironmentAwareController { * @PublicPage * @RequireModeratorParticipant */ - public function stopRecording(): DataResponse { + public function stop(): DataResponse { try { - $this->roomService->stopRecording($this->room); + $this->recordingService->stop($this->room); } catch (InvalidArgumentException $e) { return new DataResponse(['error' => $e->getMessage()], Http::STATUS_BAD_REQUEST); } diff --git a/lib/Service/RecordingService.php b/lib/Service/RecordingService.php index 228842788..8c9eb4815 100644 --- a/lib/Service/RecordingService.php +++ b/lib/Service/RecordingService.php @@ -46,17 +46,41 @@ class RecordingService { private ParticipantService $participantService; private IRootFolder $rootFolder; private Config $config; + private RoomService $roomService; public function __construct( IMimeTypeDetector $mimeTypeDetector, ParticipantService $participantService, IRootFolder $rootFolder, - Config $config + Config $config, + RoomService $roomService ) { $this->mimeTypeDetector = $mimeTypeDetector; $this->participantService = $participantService; $this->rootFolder = $rootFolder; $this->config = $config; + $this->roomService = $roomService; + } + + public function start(Room $room, int $status): void { + $availableRecordingTypes = [Room::RECORDING_VIDEO, Room::RECORDING_AUDIO]; + if (!in_array($status, $availableRecordingTypes)) { + throw new InvalidArgumentException('status'); + } + if ($room->getCallRecording() !== Room::RECORDING_NONE) { + throw new InvalidArgumentException('recording'); + } + if (!$room->getActiveSince() instanceof \DateTimeInterface) { + throw new InvalidArgumentException('call'); + } + $this->roomService->setCallRecording($room, $status); + } + + public function stop(Room $room): void { + if ($room->getCallRecording() === Room::RECORDING_NONE) { + throw new InvalidArgumentException('recording'); + } + $this->roomService->setCallRecording($room); } public function store(Room $room, string $owner, array $file): void { diff --git a/lib/Service/RoomService.php b/lib/Service/RoomService.php index 95a27e74e..bcb36312e 100644 --- a/lib/Service/RoomService.php +++ b/lib/Service/RoomService.php @@ -366,27 +366,6 @@ class RoomService { return true; } - public function startRecording(Room $room, int $status): void { - $availableRecordingTypes = [Room::RECORDING_VIDEO, Room::RECORDING_AUDIO]; - if (!in_array($status, $availableRecordingTypes)) { - throw new InvalidArgumentException('status'); - } - if ($room->getCallRecording() !== Room::RECORDING_NONE) { - throw new InvalidArgumentException('recording'); - } - if (!$room->getActiveSince() instanceof \DateTimeInterface) { - throw new InvalidArgumentException('call'); - } - $this->setCallRecording($room, $status); - } - - public function stopRecording(Room $room): void { - if ($room->getCallRecording() === Room::RECORDING_NONE) { - throw new InvalidArgumentException('recording'); - } - $this->setCallRecording($room); - } - /** * @param Room $room * @param integer $status 0 none|1 video|2 audio |