Add SetWebhook method and integrate with Methods enum
This commit is contained in:
parent
f2f26998ad
commit
f8e5b0f632
2 changed files with 66 additions and 0 deletions
|
@ -29,10 +29,12 @@
|
||||||
use TgBotLib\Methods\SendVideo;
|
use TgBotLib\Methods\SendVideo;
|
||||||
use TgBotLib\Methods\SendVideoNote;
|
use TgBotLib\Methods\SendVideoNote;
|
||||||
use TgBotLib\Methods\SendVoice;
|
use TgBotLib\Methods\SendVoice;
|
||||||
|
use TgBotLib\Methods\SetWebhook;
|
||||||
|
|
||||||
enum Methods : string
|
enum Methods : string
|
||||||
{
|
{
|
||||||
case GET_UPDATES = 'getUpdates';
|
case GET_UPDATES = 'getUpdates';
|
||||||
|
case SET_WEBHOOK = 'setWebhook';
|
||||||
case GET_ME = 'getMe';
|
case GET_ME = 'getMe';
|
||||||
case LOGOUT = 'logOut';
|
case LOGOUT = 'logOut';
|
||||||
case CLOSE = 'close';
|
case CLOSE = 'close';
|
||||||
|
@ -70,6 +72,7 @@
|
||||||
return match($this)
|
return match($this)
|
||||||
{
|
{
|
||||||
self::GET_UPDATES => GetUpdates::execute($bot, $parameters),
|
self::GET_UPDATES => GetUpdates::execute($bot, $parameters),
|
||||||
|
self::SET_WEBHOOK => SetWebhook::execute($bot, $parameters),
|
||||||
self::GET_ME => GetMe::execute($bot, $parameters),
|
self::GET_ME => GetMe::execute($bot, $parameters),
|
||||||
self::LOGOUT => LogOut::execute($bot, $parameters),
|
self::LOGOUT => LogOut::execute($bot, $parameters),
|
||||||
self::CLOSE => Close::execute($bot, $parameters),
|
self::CLOSE => Close::execute($bot, $parameters),
|
||||||
|
|
63
src/TgBotLib/Methods/SetWebhook.php
Normal file
63
src/TgBotLib/Methods/SetWebhook.php
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TgBotLib\Methods;
|
||||||
|
|
||||||
|
use TgBotLib\Abstracts\Method;
|
||||||
|
use TgBotLib\Bot;
|
||||||
|
use TgBotLib\Enums\Methods;
|
||||||
|
use TgBotLib\Enums\Types\ParseMode;
|
||||||
|
use TgBotLib\Exceptions\TelegramException;
|
||||||
|
use TgBotLib\Interfaces\ObjectTypeInterface;
|
||||||
|
use TgBotLib\Objects\Message;
|
||||||
|
use TgBotLib\Objects\MessageEntity;
|
||||||
|
use TgBotLib\Objects\ReplyParameters;
|
||||||
|
|
||||||
|
class SetWebhook extends Method
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function execute(Bot $bot, array $parameters=[]): bool
|
||||||
|
{
|
||||||
|
// Handle different photo input types
|
||||||
|
if (isset($parameters['certificate']))
|
||||||
|
{
|
||||||
|
$certificate = $parameters['certificate'];
|
||||||
|
|
||||||
|
// If certificate is a file path and exists locally
|
||||||
|
if (is_string($certificate) && file_exists($certificate) && is_file($certificate))
|
||||||
|
{
|
||||||
|
$curl = self::buildUpload($bot, Methods::SET_WEBHOOK->value, 'certificate', $certificate, array_diff_key($parameters, ['certificate' => null]));
|
||||||
|
return self::executeCurl($curl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no local files to upload, use regular POST method
|
||||||
|
return self::executeCurl(self::buildPost($bot, Methods::SET_WEBHOOK->value, $parameters));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getRequiredParameters(): ?array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'url',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getOptionalParameters(): ?array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'certificate',
|
||||||
|
'ip_address',
|
||||||
|
'max_connections',
|
||||||
|
'allowed_updates',
|
||||||
|
'drop_pending_updates',
|
||||||
|
'secret_token'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue