* * 200: User setting updated successfully * 400: Updating user setting is not possible */ #[NoAdminRequired] #[ApiRoute(verb: 'POST', url: '/api/{apiVersion}/settings/user', requirements: [ 'apiVersion' => '(v1)', ])] public function setUserSetting(string $key, string|int|null $value): DataResponse { if (!$this->preferenceListener->validatePreference($this->userId, $key, $value)) { return new DataResponse(null, Http::STATUS_BAD_REQUEST); } $this->config->setUserValue($this->userId, 'spreed', $key, $value); return new DataResponse(null); } /** * Update SIP bridge settings * * @param list $sipGroups New SIP groups * @param string $dialInInfo New dial info * @param string $sharedSecret New shared secret * @return DataResponse * * 200: Successfully set new SIP settings */ #[OpenAPI(scope: OpenAPI::SCOPE_ADMINISTRATION, tags: ['settings'])] #[ApiRoute(verb: 'POST', url: '/api/{apiVersion}/settings/sip', requirements: [ 'apiVersion' => '(v1)', ])] public function setSIPSettings( array $sipGroups = [], string $dialInInfo = '', string $sharedSecret = ''): DataResponse { $groups = []; foreach ($sipGroups as $gid) { $group = $this->groupManager->get($gid); if ($group instanceof IGroup) { $groups[] = $group->getGID(); } } $this->config->setAppValue('spreed', 'sip_bridge_groups', json_encode($groups)); $this->config->setAppValue('spreed', 'sip_bridge_dialin_info', $dialInInfo); $this->config->setAppValue('spreed', 'sip_bridge_shared_secret', $sharedSecret); return new DataResponse(null); } }