Implemented method sendChatAction
This commit is contained in:
parent
97346e217c
commit
ead1347f34
4 changed files with 179 additions and 3 deletions
|
@ -14,6 +14,7 @@
|
||||||
use TgBotLib\Methods\Logout;
|
use TgBotLib\Methods\Logout;
|
||||||
use TgBotLib\Methods\SendAnimation;
|
use TgBotLib\Methods\SendAnimation;
|
||||||
use TgBotLib\Methods\SendAudio;
|
use TgBotLib\Methods\SendAudio;
|
||||||
|
use TgBotLib\Methods\SendChatAction;
|
||||||
use TgBotLib\Methods\SendContact;
|
use TgBotLib\Methods\SendContact;
|
||||||
use TgBotLib\Methods\SendDice;
|
use TgBotLib\Methods\SendDice;
|
||||||
use TgBotLib\Methods\SendDocument;
|
use TgBotLib\Methods\SendDocument;
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
case SEND_CONTACT = 'sendContact';
|
case SEND_CONTACT = 'sendContact';
|
||||||
case SEND_POLL = 'sendPoll';
|
case SEND_POLL = 'sendPoll';
|
||||||
case SEND_DICE = 'sendDice';
|
case SEND_DICE = 'sendDice';
|
||||||
|
case SEND_CHAT_ACTION = 'sendChatAction';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes a command on the provided bot with the given parameters.
|
* Executes a command on the provided bot with the given parameters.
|
||||||
|
@ -87,6 +89,7 @@
|
||||||
self::SEND_CONTACT => SendContact::execute($bot, $parameters),
|
self::SEND_CONTACT => SendContact::execute($bot, $parameters),
|
||||||
self::SEND_POLL => SendPoll::execute($bot, $parameters),
|
self::SEND_POLL => SendPoll::execute($bot, $parameters),
|
||||||
self::SEND_DICE => SendDice::execute($bot, $parameters),
|
self::SEND_DICE => SendDice::execute($bot, $parameters),
|
||||||
|
self::SEND_CHAT_ACTION => SendChatAction::execute($bot, $parameters)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,8 @@
|
||||||
case UPLOAD_PHOTO = 'upload_photo';
|
case UPLOAD_PHOTO = 'upload_photo';
|
||||||
case RECORD_VIDEO = 'record_video';
|
case RECORD_VIDEO = 'record_video';
|
||||||
case UPLOAD_VIDEO = 'upload_video';
|
case UPLOAD_VIDEO = 'upload_video';
|
||||||
case RECORD_AUDIO = 'record_audio';
|
case RECORD_VOICE = 'record_voice';
|
||||||
case UPLOAD_AUDIO = 'upload_audio';
|
case CHOOSE_STICKER = 'choose_sticker';
|
||||||
case UPLOAD_DOCUMENT = 'upload_document';
|
|
||||||
case FIND_LOCATION = 'find_location';
|
case FIND_LOCATION = 'find_location';
|
||||||
case RECORD_VIDEO_NOTE = 'record_video_note';
|
case RECORD_VIDEO_NOTE = 'record_video_note';
|
||||||
case UPLOAD_VIDEO_NOTE = 'upload_video_note';
|
case UPLOAD_VIDEO_NOTE = 'upload_video_note';
|
||||||
|
|
47
src/TgBotLib/Methods/SendChatAction.php
Normal file
47
src/TgBotLib/Methods/SendChatAction.php
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TgBotLib\Methods;
|
||||||
|
|
||||||
|
use TgBotLib\Abstracts\Method;
|
||||||
|
use TgBotLib\Bot;
|
||||||
|
use TgBotLib\Enums\Methods;
|
||||||
|
use TgBotLib\Enums\Types\ChatActionType;
|
||||||
|
use TgBotLib\Objects\Message;
|
||||||
|
|
||||||
|
class SendChatAction extends Method
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function execute(Bot $bot, array $parameters = []): mixed
|
||||||
|
{
|
||||||
|
if($parameters['action'] instanceof ChatActionType)
|
||||||
|
{
|
||||||
|
$parameters['action'] = $parameters['action']->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (bool)self::executeCurl(self::buildPost($bot, Methods::SEND_CHAT_ACTION->value, $parameters));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getRequiredParameters(): ?array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'chat_id',
|
||||||
|
'action'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getOptionalParameters(): ?array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'business_connection_id',
|
||||||
|
'message_thread_id'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
127
tests/TgBotLib/Methods/SendChatActionTest.php
Normal file
127
tests/TgBotLib/Methods/SendChatActionTest.php
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TgBotLib\Methods;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use TgBotLib\Bot;
|
||||||
|
use TgBotLib\Enums\Types\ChatActionType;
|
||||||
|
use TgBotLib\Exceptions\TelegramException;
|
||||||
|
use TgBotLib\Objects\Message;
|
||||||
|
|
||||||
|
class SendChatActionTest extends TestCase
|
||||||
|
{
|
||||||
|
private static Bot $bot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function setUpBeforeClass(): void
|
||||||
|
{
|
||||||
|
self::$bot = new Bot(BOT_TOKEN);
|
||||||
|
self::$bot->setAutoRetry(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the basic `sendVenue` functionality
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testTypingAction(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::TYPING
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUploadPhoto(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::UPLOAD_PHOTO
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRecordVideo(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::RECORD_VIDEO
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUploadVideo(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::UPLOAD_VIDEO
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRecordVoice(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::RECORD_VOICE
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testChooseSticker(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::CHOOSE_STICKER
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFindLocation(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::FIND_LOCATION
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRecordVideoNote(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::RECORD_VIDEO_NOTE
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUploadVideoNote(): void
|
||||||
|
{
|
||||||
|
$result = self::$bot->sendChatAction(
|
||||||
|
chat_id: TEST_CHAT_ID,
|
||||||
|
action: ChatActionType::UPLOAD_VIDEO_NOTE
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertIsBool($result);
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue