| Server IP : 54.94.228.101 / Your IP : 172.28.1.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/irazasyed/telegram-bot-sdk/src/ |
Upload File : |
<?php
namespace Telegram\Bot;
use Telegram\Bot\Exceptions\TelegramSDKException;
/**
* Class TelegramRequest.
*
* Builds Telegram Bot API Request Entity.
*/
class TelegramRequest
{
/**
* @var string|null The bot access token to use for this request.
*/
protected $accessToken;
/**
* @var string The HTTP method for this request.
*/
protected $method;
/**
* @var string The API endpoint for this request.
*/
protected $endpoint;
/**
* @var array The headers to send with this request.
*/
protected $headers = [];
/**
* @var array The parameters to send with this request.
*/
protected $params = [];
/**
* @var array The files to send with this request.
*/
protected $files = [];
/**
* Indicates if the request to Telegram will be asynchronous (non-blocking).
*
* @var bool
*/
protected $isAsyncRequest = false;
/**
* Timeout of the request in seconds.
*
* @var int
*/
protected $timeOut = 30;
/**
* Connection timeout of the request in seconds.
*
* @var int
*/
protected $connectTimeOut = 10;
/**
* Creates a new Request entity.
*
* @param string|null $accessToken
* @param string|null $method
* @param string|null $endpoint
* @param array|null $params
* @param bool $isAsyncRequest
* @param int $timeOut
* @param int $connectTimeOut
*/
public function __construct(
$accessToken = null,
$method = null,
$endpoint = null,
array $params = [],
$isAsyncRequest = false,
$timeOut = 60,
$connectTimeOut = 10
) {
$this->setAccessToken($accessToken);
$this->setMethod($method);
$this->setEndpoint($endpoint);
$this->setParams($params);
$this->setAsyncRequest($isAsyncRequest);
$this->setTimeOut($timeOut);
$this->setConnectTimeOut($connectTimeOut);
}
/**
* Set the bot access token for this request.
*
* @param string
*
* @return TelegramRequest
*/
public function setAccessToken($accessToken)
{
$this->accessToken = $accessToken;
return $this;
}
/**
* Return the bot access token for this request.
*
* @return string|null
*/
public function getAccessToken()
{
return $this->accessToken;
}
/**
* Validate that bot access token exists for this request.
*
* @throws TelegramSDKException
*/
public function validateAccessToken()
{
$accessToken = $this->getAccessToken();
if ($accessToken === null) {
throw new TelegramSDKException('You must provide your bot access token to make any API requests.');
}
}
/**
* Set the HTTP method for this request.
*
* @param string
*
* @return TelegramRequest
*/
public function setMethod($method)
{
$this->method = strtoupper($method);
return $this;
}
/**
* Return the HTTP method for this request.
*
* @return string
*/
public function getMethod()
{
return $this->method;
}
/**
* Validate that the HTTP method is set.
*
* @throws TelegramSDKException
*/
public function validateMethod()
{
if (!$this->method) {
throw new TelegramSDKException('HTTP method not specified.');
}
if (!in_array($this->method, ['GET', 'POST'])) {
throw new TelegramSDKException('Invalid HTTP method specified.');
}
}
/**
* Set the endpoint for this request.
*
* @param string $endpoint
*
* @return TelegramRequest
*/
public function setEndpoint($endpoint)
{
$this->endpoint = $endpoint;
return $this;
}
/**
* Return the API Endpoint for this request.
*
* @return string
*/
public function getEndpoint()
{
return $this->endpoint;
}
/**
* Set the params for this request.
*
* @param array $params
*
* @return TelegramRequest
*/
public function setParams(array $params = [])
{
$this->params = array_merge($this->params, $params);
return $this;
}
/**
* Return the params for this request.
*
* @return array
*/
public function getParams()
{
return $this->params;
}
/**
* Set the headers for this request.
*
* @param array $headers
*
* @return TelegramRequest
*/
public function setHeaders(array $headers)
{
$this->headers = array_merge($this->headers, $headers);
return $this;
}
/**
* Return the headers for this request.
*
* @return array
*/
public function getHeaders()
{
$headers = $this->getDefaultHeaders();
return array_merge($this->headers, $headers);
}
/**
* Make this request asynchronous (non-blocking).
*
* @param $isAsyncRequest
*
* @return TelegramRequest
*/
public function setAsyncRequest($isAsyncRequest)
{
$this->isAsyncRequest = $isAsyncRequest;
return $this;
}
/**
* Check if this is an asynchronous request (non-blocking).
*
* @return bool
*/
public function isAsyncRequest()
{
return $this->isAsyncRequest;
}
/**
* Only return params on POST requests.
*
* @return array
*/
public function getPostParams()
{
if ($this->getMethod() === 'POST') {
return $this->getParams();
}
return [];
}
/**
* The default headers used with every request.
*
* @return array
*/
public function getDefaultHeaders()
{
return [
'User-Agent' => 'Telegram Bot PHP SDK v'.Api::VERSION.' - (https://github.com/irazasyed/telegram-bot-sdk)',
];
}
/**
* @return int
*/
public function getTimeOut()
{
return $this->timeOut;
}
/**
* @param int $timeOut
*
* @return $this
*/
public function setTimeOut($timeOut)
{
$this->timeOut = $timeOut;
return $this;
}
/**
* @return int
*/
public function getConnectTimeOut()
{
return $this->connectTimeOut;
}
/**
* @param int $connectTimeOut
*
* @return $this
*/
public function setConnectTimeOut($connectTimeOut)
{
$this->connectTimeOut = $connectTimeOut;
return $this;
}
}