/** * @param Dialog $dialog * @return Dialog */ public function add(Dialog $dialog) { $dialog->setTelegram($this->telegram); // save new dialog $chatId = $dialog->getChat()->getId(); $this->setField($chatId, 'next', $dialog->getNext()); $this->setField($chatId, 'dialog', get_class($dialog)); // @todo It's not safe. Need to define Dialogs registry with check of bindings return $dialog; }
/** * @todo Replace basic Exception by the specific * @param Update $update * @throws DialogException */ public function __construct(Update $update) { $username = $update->getMessage()->getFrom()->getUsername(); if (!$username || !in_array($username, $this->allowedUsers)) { throw new DialogException('You have no access to start this dialog'); } parent::__construct($update); }