summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2023-01-05 06:58:23 +0100
committerGitHub <noreply@github.com>2023-01-05 06:58:23 +0100
commitc11d5ae46495f9ca9680cc12e35d7b012e0d019e (patch)
tree799af6ec960d24baca6da1528419d018fb2f0144 /lib
parent9219d6f7a066ad5b4a93c37a905b4501b47fcbd5 (diff)
parentc08f92ead569d8dc380fb5bf560ef08b04722953 (diff)
Merge pull request #8525 from nextcloud/feature/move-recording-methods
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/RecordingController.php14
-rw-r--r--lib/Service/RecordingService.php26
-rw-r--r--lib/Service/RoomService.php21
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