client = $client; $this->router = $router; $this->token = $telegramToken; $this->maxConnections = $telegramWebhookMaxConnections; } /** * {@inheritdoc} */ protected function configure() { $this ->setName('telegram:webhook') ->setDescription('Set webhook') ->addArgument('mode', InputArgument::REQUIRED, 'Command mode (set or delete)') ; } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { if (self::MODE_SET === strtolower($input->getArgument('mode'))) { $url = $this->router->generate( 'telegram_webhook', ['token' => $this->token], UrlGeneratorInterface::ABSOLUTE_URL ); $output->writeln('Setting webhook: '.$url); $setWebHook = new SetWebhook(); $setWebHook->url = $url; $setWebHook->max_connections = $this->maxConnections; $this->client->performApiRequest($setWebHook); $output->writeln('Done'); } elseif (self::MODE_DELETE === strtolower($input->getArgument('mode'))) { $output->writeln('Deleting webhook'); $deleteWebHook = new DeleteWebhook(); $this->client->performApiRequest($deleteWebHook); $output->writeln('Done'); } else { throw new \InvalidArgumentException(sprintf('Mode must be exactly one of: %s', implode(', ', [self::MODE_SET, self::MODE_DELETE]))); } return 0; } }