public static function setChannelName(ChainContainer $chain) { $user = $chain->getFrom(); $request = $chain->getRequest(); $lang = $user->getLang(); if (!isset($request['name']) || !isset($request['channelId'])) { RespondError::make($user); return; } try { $form = (new Form())->import($request)->addRule('channelId', Rules::existsChannel(), $lang->getPhrase('ChannelNotExists'))->addRule('name', Rules::namePattern(100, true), $lang->getPhrase('InvalidNameFormat'), '_nameFormat')->addRule('name', Rules::channelNameDuplication(), $lang->getPhrase('InvalidNameFormat'), '_nameUnique'); } catch (WrongRuleNameException $e) { RespondError::make($user, ['property' => $lang->getPhrase('InvalidProperty')]); return; } if (!$form->validate()) { RespondError::make($user, $form->getErrors()); return; } $channel = ChannelsCollection::get()->getChannelById($request['channelId']); if ($channel->getOwnerId() != $user->getId()) { RespondError::make($user, [PropertiesDAO::USER_ID => $lang->getPhrase('InsufficientRights')]); return; } $channel->setName($request['name']); }