zend-blog-3-backend
42 строки · 935.0 Байт
1<?php
2
3namespace Xelbot\Telegram\Command;
4
5use Xelbot\Telegram\Entity\Message;
6use Xelbot\Telegram\Exception\AccessDeniedTelegramException;
7
8abstract class AbstractAdminCommand
9{
10/**
11* @var int
12*/
13private $adminId;
14
15/**
16* @param int $adminId
17*/
18public function setAdminId(int $adminId)
19{
20$this->adminId = $adminId;
21}
22
23/**
24* @param Message $message
25*/
26abstract protected function executeCommand(Message $message): void;
27
28/**
29* @param Message $message
30*
31* @throws AccessDeniedTelegramException
32*/
33public function execute(Message $message): void
34{
35//TODO Null pointer exception may occur here
36if ($message->getFrom()->getId() != $this->adminId) {
37throw new AccessDeniedTelegramException("Access Denied for user ID:{$message->getFrom()->getId()}");
38}
39
40$this->executeCommand($message);
41}
42}
43