* * 200: Return list of configured bridges */ #[NoAdminRequired] #[RequireLoggedInModeratorParticipant] public function getBridgeOfRoom(): DataResponse { $pid = $this->bridgeManager->checkBridge($this->room); $logContent = $this->bridgeManager->getBridgeLog($this->room); $bridge = $this->bridgeManager->getBridgeOfRoom($this->room); $bridge['running'] = ($pid !== 0); $bridge['log'] = $logContent; return new DataResponse($bridge); } /** * Get bridge process information * * @return DataResponse * * 200: Return list of running processes */ #[NoAdminRequired] #[RequireLoggedInModeratorParticipant] public function getBridgeProcessState(): DataResponse { $state = $this->bridgeManager->getBridgeProcessState($this->room); return new DataResponse($state); } /** * Edit bridge information of one room * * @param bool $enabled If the bridge should be enabled * @param TalkMatterbridgeConfigFields $parts New parts * @return DataResponse|DataResponse * * 200: Bridge edited successfully * 406: Editing bridge is not possible */ #[NoAdminRequired] #[RequireLoggedInModeratorParticipant] public function editBridgeOfRoom(bool $enabled, array $parts = []): DataResponse { try { $state = $this->bridgeManager->editBridgeOfRoom($this->room, $this->userId, $enabled, $parts); } catch (ImpossibleToKillException $e) { return new DataResponse(['error' => $e->getMessage()], Http::STATUS_NOT_ACCEPTABLE); } return new DataResponse($state); } /** * Delete bridge of one room * * @return DataResponse|DataResponse * * 200: Bridge deleted successfully * 406: Deleting bridge is not possible */ #[NoAdminRequired] #[RequireLoggedInModeratorParticipant] public function deleteBridgeOfRoom(): DataResponse { try { $success = $this->bridgeManager->deleteBridgeOfRoom($this->room); } catch (ImpossibleToKillException $e) { return new DataResponse(['error' => $e->getMessage()], Http::STATUS_NOT_ACCEPTABLE); } return new DataResponse($success); } }