| Path : /proc/self/root/var/www/html/phkaymedia/vendor/irazasyed/telegram-bot-sdk/src/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : //proc/self/root/var/www/html/phkaymedia/vendor/irazasyed/telegram-bot-sdk/src/TelegramRequest.php |
<?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 = [];
/** @var bool Indicates if the request to Telegram will be asynchronous (non-blocking). */
protected $isAsyncRequest = false;
/** @var int Timeout of the request in seconds. */
protected $timeOut;
/** @var int Connection timeout of the request in seconds. */
protected $connectTimeOut;
/**
* Creates a new Request entity.
*
* @param string|null $accessToken
* @param string|null $method
* @param string|null $endpoint
* @param array|null $params
* @param bool $isAsyncRequest
*/
public function __construct(
$accessToken = null,
$method = null,
$endpoint = null,
array $params = [],
$isAsyncRequest = false
) {
$this->setAccessToken($accessToken);
$this->setMethod($method);
$this->setEndpoint($endpoint);
$this->setParams($params);
$this->setAsyncRequest($isAsyncRequest);
}
/**
* Make this request asynchronous (non-blocking).
*
* @param bool $isAsyncRequest
*
* @return TelegramRequest
*/
public function setAsyncRequest($isAsyncRequest): self
{
$this->isAsyncRequest = $isAsyncRequest;
return $this;
}
/**
* Validate that bot access token exists for this request.
*
* @throws TelegramSDKException
*/
public function validateAccessToken()
{
if (null === $this->getAccessToken()) {
throw new TelegramSDKException('You must provide your bot access token to make any API requests.');
}
}
/**
* Return the bot access token for this request.
*
* @return string|null
*/
public function getAccessToken()
{
return $this->accessToken;
}
/**
* Set the bot access token for this request.
*
* @param string $accessToken
*
* @return TelegramRequest
*/
public function setAccessToken(string $accessToken): self
{
$this->accessToken = $accessToken;
return $this;
}
/**
* 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. Must be GET or POST');
}
}
/**
* Return the API Endpoint for this request.
*
* @return string
*/
public function getEndpoint(): string
{
return $this->endpoint;
}
/**
* Set the endpoint for this request.
*
* @param string $endpoint
*
* @return TelegramRequest
*/
public function setEndpoint(string $endpoint): self
{
$this->endpoint = $endpoint;
return $this;
}
/**
* Return the headers for this request.
*
* @return array
*/
public function getHeaders(): array
{
$headers = $this->getDefaultHeaders();
return array_merge($this->headers, $headers);
}
/**
* Set the headers for this request.
*
* @param array $headers
*
* @return TelegramRequest
*/
public function setHeaders(array $headers): self
{
$this->headers = array_merge($this->headers, $headers);
return $this;
}
/**
* The default headers used with every request.
*
* @return array
*/
public function getDefaultHeaders(): array
{
return [
'User-Agent' => 'Telegram Bot PHP SDK v' . Api::VERSION . ' (https://github.com/irazasyed/telegram-bot-sdk)',
];
}
/**
* Check if this is an asynchronous request (non-blocking).
*
* @return bool
*/
public function isAsyncRequest(): bool
{
return $this->isAsyncRequest;
}
/**
* Only return params on POST requests.
*
* @return array
*/
public function getPostParams(): array
{
if ($this->getMethod() === 'POST') {
return $this->getParams();
}
return [];
}
/**
* Return the HTTP method for this request.
*
* @return string
*/
public function getMethod(): string
{
return $this->method;
}
/**
* Set the HTTP method for this request.
*
* @param string
*
* @return TelegramRequest
*/
public function setMethod(string $method): self
{
$this->method = strtoupper($method);
return $this;
}
/**
* Return the params for this request.
*
* @return array
*/
public function getParams(): array
{
return $this->params;
}
/**
* Set the params for this request.
*
* @param array $params
*
* @return TelegramRequest
*/
public function setParams(array $params = []): self
{
$this->params = array_merge($this->params, $params);
return $this;
}
/**
* Get Timeout.
*
* @return int
*/
public function getTimeOut(): int
{
return $this->timeOut;
}
/**
* Set Timeout.
*
* @param int $timeOut
*
* @return TelegramRequest
*/
public function setTimeOut(int $timeOut): self
{
$this->timeOut = $timeOut;
return $this;
}
/**
* Get Connection Timeout.
*
* @return int
*/
public function getConnectTimeOut(): int
{
return $this->connectTimeOut;
}
/**
* Set Connection Timeout.
*
* @param int $connectTimeOut
*
* @return TelegramRequest
*/
public function setConnectTimeOut(int $connectTimeOut): self
{
$this->connectTimeOut = $connectTimeOut;
return $this;
}
}