diff --git a/src/DTO/TelegramUpdate.php b/src/DTO/TelegramUpdate.php index 64ffec0f7..e197fb3ec 100644 --- a/src/DTO/TelegramUpdate.php +++ b/src/DTO/TelegramUpdate.php @@ -24,6 +24,7 @@ private function __construct() * @param array{ * update_id:int, * message?:array, + * edited_message?:array, * channel_post?:array, * callback_query?:array, * my_chat_member?:array, @@ -41,6 +42,11 @@ public static function fromArray(array $data): TelegramUpdate $update->message = Message::fromArray($data['message']); } + if (isset($data['edited_message'])) { + /* @phpstan-ignore-next-line */ + $update->message = Message::fromArray($data['edited_message']); + } + if (isset($data['channel_post'])) { /* @phpstan-ignore-next-line */ $update->message = Message::fromArray($data['channel_post']); diff --git a/src/Handlers/WebhookHandler.php b/src/Handlers/WebhookHandler.php index 4bdf65625..842c81b67 100644 --- a/src/Handlers/WebhookHandler.php +++ b/src/Handlers/WebhookHandler.php @@ -230,6 +230,14 @@ public function handle(Request $request, TelegraphBot $bot): void return; } + if ($this->request->has('edited_message')) { + /* @phpstan-ignore-next-line */ + $this->message = Message::fromArray($this->request->input('edited_message')); + $this->handleMessage(); + + return; + } + if ($this->request->has('channel_post')) { /* @phpstan-ignore-next-line */ $this->message = Message::fromArray($this->request->input('channel_post')); diff --git a/tests/Unit/DTO/TelegramUpdateTest.php b/tests/Unit/DTO/TelegramUpdateTest.php index 66e256fc8..3c83f4ba5 100644 --- a/tests/Unit/DTO/TelegramUpdateTest.php +++ b/tests/Unit/DTO/TelegramUpdateTest.php @@ -13,6 +13,11 @@ 'date' => now()->timestamp, 'text' => 'f', ], + 'edited_message' => [ + 'message_id' => 2, + 'date' => now()->timestamp, + 'text' => 'f', + ], 'channel_post' => [ 'message_id' => 4, 'date' => now()->timestamp,