diff --git a/src/Api.php b/src/Api.php index ecf777d..cfd8c29 100644 --- a/src/Api.php +++ b/src/Api.php @@ -13,6 +13,7 @@ use BushlanovDev\MaxMessengerBot\Models\AbstractModel; use BushlanovDev\MaxMessengerBot\Models\Attachments\Requests\AbstractAttachmentRequest; use BushlanovDev\MaxMessengerBot\Models\BotInfo; use BushlanovDev\MaxMessengerBot\Models\Message; +use BushlanovDev\MaxMessengerBot\Models\MessageLink; use BushlanovDev\MaxMessengerBot\Models\Result; use BushlanovDev\MaxMessengerBot\Models\Subscription; use InvalidArgumentException; @@ -159,7 +160,8 @@ class Api * @param int|null $chatId Fill this if you send message to chat. * @param string|null $text Message text. * @param AbstractAttachmentRequest[]|null $attachments Message attachments. - * @param MessageFormat|null $format + * @param MessageFormat|null $format Message format. + * @param MessageLink|null $link Link to message. * @param bool $notify If false, chat participants would not be notified. * @param bool $disableLinkPreview If false, server will not generate media preview for links in text. * @@ -172,6 +174,7 @@ class Api ?string $text = null, ?array $attachments = null, ?MessageFormat $format = null, + ?MessageLink $link = null, bool $notify = true, bool $disableLinkPreview = false, ): Message { @@ -185,6 +188,7 @@ class Api 'text' => $text, 'format' => $format?->value, 'notify' => $notify, + 'link' => $link, 'attachments' => $attachments !== null ? array_map( fn(AbstractModel $attachment) => $attachment->toArray(), $attachments, diff --git a/src/Enums/MessageLinkType.php b/src/Enums/MessageLinkType.php new file mode 100644 index 0000000..f9a3c87 --- /dev/null +++ b/src/Enums/MessageLinkType.php @@ -0,0 +1,11 @@ +webApp = $webApp; + $this->contactId = $contactId; + } +} diff --git a/src/Models/MessageLink.php b/src/Models/MessageLink.php new file mode 100644 index 0000000..c6abfc1 --- /dev/null +++ b/src/Models/MessageLink.php @@ -0,0 +1,23 @@ + 'MyWebApp', + 'contact_id' => 123, + 'type' => ButtonType::OpenApp->value, + 'text' => 'Test Button', + ]; + + $resultArray = $button->toArray(); + + $this->assertSame($expectedArray, $resultArray); + } +} diff --git a/tests/Models/MessageLinkTest.php b/tests/Models/MessageLinkTest.php new file mode 100644 index 0000000..04db708 --- /dev/null +++ b/tests/Models/MessageLinkTest.php @@ -0,0 +1,32 @@ + MessageLinkType::Forward->value, + 'mid' => '123', + ]; + + $resultArray = $messageLink->toArray(); + + $this->assertSame($expectedArray, $resultArray); + $this->assertSame(MessageLinkType::Forward, $messageLink->type); + $this->assertSame('123', $messageLink->mid); + } +}