Skip to content

Commit 5de1935

Browse files
committed
Other Changes pt. 2: Added Factory and NotImplemented class
1 parent 1d9286f commit 5de1935

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

src/Entities/Message.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Longman\TelegramBot\Entities;
1313

1414
use Longman\TelegramBot\Entities\Games\Game;
15+
use Longman\TelegramBot\Entities\MessageOrigin\Factory as MessageOriginFactory;
1516
use Longman\TelegramBot\Entities\MessageOrigin\MessageOrigin;
1617
use Longman\TelegramBot\Entities\Payments\Invoice;
1718
use Longman\TelegramBot\Entities\Payments\SuccessfulPayment;
@@ -111,8 +112,7 @@ protected function subEntities(): array
111112
'from' => User::class,
112113
'sender_chat' => Chat::class,
113114
'chat' => Chat::class,
114-
'forward_from' => User::class,
115-
'forward_from_chat' => Chat::class,
115+
'forward_origin' => MessageOriginFactory::class,
116116
'reply_to_message' => ReplyToMessage::class,
117117
'external_reply' => ExternalReplyInfo::class,
118118
'quote' => TextQuote::class,
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace Longman\TelegramBot\Entities\MessageOrigin;
4+
5+
use Longman\TelegramBot\Entities\Entity;
6+
7+
class Factory extends \Longman\TelegramBot\Entities\Factory
8+
{
9+
public static function make(array $data, string $bot_username): Entity
10+
{
11+
$type = [
12+
'user' => MessageOriginUser::class,
13+
'hidden_user' => MessageOriginHiddenUser::class,
14+
'chat' => MessageOriginChat::class,
15+
'channel' => MessageOriginChannel::class,
16+
];
17+
18+
if (!isset($type[$data['type'] ?? ''])) {
19+
return new MessageOriginNotImplemented($data, $bot_username);
20+
}
21+
22+
$class = $type[$data['type']];
23+
return new $class($data, $bot_username);
24+
}
25+
26+
}

src/Entities/MessageOrigin/MessageOrigin.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
namespace Longman\TelegramBot\Entities\MessageOrigin;
44

5-
use Longman\TelegramBot\Entities\Entity;
6-
75
/**
86
* This object describes the origin of a message.
97
*
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Longman\TelegramBot\Entities\MessageOrigin;
4+
5+
use Longman\TelegramBot\Entities\Entity;
6+
7+
/**
8+
* @method string getType() Type of the message origin
9+
* @method int getDate() Date the message was sent originally in Unix time
10+
*/
11+
class MessageOriginNotImplemented extends Entity implements MessageOrigin
12+
{
13+
14+
}

0 commit comments

Comments
 (0)