Skip to content

Commit 32ed131

Browse files
Llooplempociot
authored andcommitted
Add event group_chat_created (#47)
* Be able to send venue information * Add generic event group_chat_created and tests. Also refactored the hasMatchingEvent method to reduce the code lines and magic strings.
1 parent cba2774 commit 32ed131

File tree

2 files changed

+37
-17
lines changed

2 files changed

+37
-17
lines changed

src/TelegramDriver.php

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ class TelegramDriver extends HttpDriver
2626
const API_URL = 'https://api.telegram.org/bot';
2727
const FILE_API_URL = 'https://api.telegram.org/file/bot';
2828
const LOGIN_EVENT = 'telegram_login';
29+
const GENERIC_EVENTS = [
30+
'new_chat_members',
31+
'left_chat_member',
32+
'new_chat_title',
33+
'new_chat_photo',
34+
'group_chat_created'
35+
];
2936

3037
protected $endpoint = 'sendMessage';
3138

@@ -102,24 +109,13 @@ public function hasMatchingEvent()
102109
$event->setName(self::LOGIN_EVENT);
103110
}
104111

105-
if ($this->event->has('new_chat_members')) {
106-
$event = new GenericEvent($this->event->get('new_chat_members'));
107-
$event->setName('new_chat_members');
108-
}
109-
110-
if ($this->event->has('left_chat_member')) {
111-
$event = new GenericEvent($this->event->get('left_chat_member'));
112-
$event->setName('left_chat_member');
113-
}
112+
foreach (self::GENERIC_EVENTS as $genericEvent) {
113+
if ($this->event->has($genericEvent)) {
114+
$event = new GenericEvent($this->event->get($genericEvent));
115+
$event->setName($genericEvent);
114116

115-
if ($this->event->has('new_chat_title')) {
116-
$event = new GenericEvent($this->event->get('new_chat_title'));
117-
$event->setName('new_chat_title');
118-
}
119-
120-
if ($this->event->has('new_chat_photo')) {
121-
$event = new GenericEvent($this->event->get('new_chat_photo'));
122-
$event->setName('new_chat_photo');
117+
return $event;
118+
}
123119
}
124120

125121
return $event;

tests/TelegramDriverTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,30 @@ public function it_calls_new_chat_member_event()
179179
$this->assertSame('Marcel', $event->getPayload()[0]['first_name']);
180180
}
181181

182+
/** @test */
183+
public function it_calls_group_chat_created_event()
184+
{
185+
$driver = $this->getDriver([
186+
'update_id' => '1234567890',
187+
'message' => [
188+
'message_id' => '123',
189+
'from' => [
190+
'id' => 'from_id',
191+
],
192+
'chat' => [
193+
'id' => 'chat_id',
194+
],
195+
'date' => '1480369277',
196+
'text' => 'Hi Julia',
197+
'group_chat_created' => true,
198+
],
199+
]);
200+
$event = $driver->hasMatchingEvent();
201+
$this->assertInstanceOf(GenericEvent::class, $event);
202+
$this->assertSame('group_chat_created', $event->getName());
203+
$this->assertTrue($event->getPayload());
204+
}
205+
182206
/** @test */
183207
public function it_calls_left_chat_member_event()
184208
{

0 commit comments

Comments
 (0)