diff --git a/src/Telegram/Methods/GetChatMember.php b/src/Telegram/Methods/GetChatMember.php index 7edb0f8..21cf6fd 100644 --- a/src/Telegram/Methods/GetChatMember.php +++ b/src/Telegram/Methods/GetChatMember.php @@ -1,6 +1,6 @@ getResult(), $logger); + return ChatMember::create($data->getResult(), $logger); } public function getMandatoryFields(): array diff --git a/src/Telegram/Types/Chat.php b/src/Telegram/Types/Chat.php index 2f14f91..5cdeb37 100644 --- a/src/Telegram/Types/Chat.php +++ b/src/Telegram/Types/Chat.php @@ -15,6 +15,11 @@ */ class Chat extends TelegramTypes { + public const TYPE_PRIVATE = 'private'; + public const TYPE_GROUP = 'group'; + public const TYPE_SUPERGROUP = 'supergroup'; + public const TYPE_CHANNEL = 'channel'; + /** * Unique identifier for this chat. This number may be greater than 32 bits and some programming languages may have * difficulty/silent defects in interpreting it. But it smaller than 52 bits, so a signed 64 bit integer or diff --git a/src/Telegram/Types/ChatMember.php b/src/Telegram/Types/ChatMember.php index e9cebac..982b25d 100644 --- a/src/Telegram/Types/ChatMember.php +++ b/src/Telegram/Types/ChatMember.php @@ -1,10 +1,17 @@ error(sprintf( + 'Unable to detect correct "%s" class based on status = "%s"! Maybe a recent Telegram Bot ' . + 'API update? In any way, please submit an issue (bug report) at %s with this complete log line', + self::class, + $status ?? 'null', + 'https://github.com/unreal4u/telegram-api/issues' + ), [ + 'object' => self::class, + 'data' => $data, + ]); + + return new ChatMember($data, $logger); + } } diff --git a/src/Telegram/Types/ChatMember/ChatMemberAdministrator.php b/src/Telegram/Types/ChatMember/ChatMemberAdministrator.php new file mode 100644 index 0000000..d952d3b --- /dev/null +++ b/src/Telegram/Types/ChatMember/ChatMemberAdministrator.php @@ -0,0 +1,135 @@ +logger); case 'old_chat_member': case 'new_chat_member': - return new ChatMember($data, $this->logger); + return ChatMember::create($data, $this->logger); case 'invite_link': return new ChatInviteLink($data, $this->logger); } diff --git a/src/Telegram/Types/Custom/ChatMembersArray.php b/src/Telegram/Types/Custom/ChatMembersArray.php index 2d911fb..1314312 100644 --- a/src/Telegram/Types/Custom/ChatMembersArray.php +++ b/src/Telegram/Types/Custom/ChatMembersArray.php @@ -1,6 +1,6 @@ $chatMember) { - $this->data[$id] = new ChatMember($chatMember, $logger); - } + foreach ($data ?? [] as $id => $chatMember) { + $this->data[$id] = ChatMember::create($chatMember, $logger); } } }