Commit a8c27913 authored by Avtandil Kikabidze's avatar Avtandil Kikabidze

Improved code and doc-blocks

parent 87e0d1c4
......@@ -40,7 +40,10 @@ class Botan
public static $command = '';
/**
* Initilize botan
* Initialize Botan
*
* @param $token
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function initializeBotan($token)
{
......@@ -71,7 +74,7 @@ class Botan
* @param string $command
*
* @return bool|string
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function track($input, $command = '')
{
......@@ -155,7 +158,7 @@ class Botan
* @param $user_id
*
* @return string
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function shortenUrl($url, $user_id)
{
......@@ -192,6 +195,7 @@ class Botan
if (!filter_var($response, FILTER_VALIDATE_URL) === false) {
BotanDB::insertShortUrl($user_id, $url, $response);
} else {
// @FIXME: Add telegram log
error_log('Botan.io API replied with error: ' . $response);
return $url;
}
......
......@@ -10,7 +10,9 @@
namespace Longman\TelegramBot;
use Exception;
use Longman\TelegramBot\Exception\TelegramException;
use PDO;
/**
* Class BotanDB
......@@ -33,7 +35,7 @@ class BotanDB extends DB
* @param $user_id
* @param $url
*
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*
* @return bool|string
*/
......@@ -48,12 +50,12 @@ class BotanDB extends DB
WHERE `user_id` = :user_id AND `url` = :url
');
$sth->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth->bindParam(':url', $url, \PDO::PARAM_INT);
$sth->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth->bindParam(':url', $url, PDO::PARAM_INT);
$sth->execute();
$results = $sth->fetchAll(\PDO::FETCH_ASSOC);
} catch (\Exception $e) {
$results = $sth->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
throw new TelegramException($e->getMessage());
}
......@@ -67,7 +69,7 @@ class BotanDB extends DB
* @param $url
* @param $short_url
*
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*
* @return bool
*/
......@@ -95,7 +97,7 @@ class BotanDB extends DB
$sth->bindParam(':date', $created_at);
$status = $sth->execute();
} catch (\Exception $e) {
} catch (Exception $e) {
throw new TelegramException($e->getMessage());
}
......
......@@ -146,7 +146,8 @@ class Conversation
$this->user_id,
$this->chat_id,
$this->command
)) {
)
) {
return $this->load();
}
}
......
......@@ -10,11 +10,10 @@
namespace Longman\TelegramBot;
use Exception;
use Longman\TelegramBot\Exception\TelegramException;
use PDO;
/**
* Class ConversationDB
*/
class ConversationDB extends DB
{
/**
......@@ -35,6 +34,7 @@ class ConversationDB extends DB
* @param bool $limit
*
* @return array|bool
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function selectConversation($user_id, $chat_id, $limit = null)
{
......@@ -54,14 +54,14 @@ class ConversationDB extends DB
$sth = self::$pdo->prepare($query);
$active = 'active';
$sth->bindParam(':status', $active, \PDO::PARAM_STR);
$sth->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth->bindParam(':limit', $limit, \PDO::PARAM_INT);
$sth->bindParam(':status', $active, PDO::PARAM_STR);
$sth->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$sth->bindParam(':limit', $limit, PDO::PARAM_INT);
$sth->execute();
$results = $sth->fetchAll(\PDO::FETCH_ASSOC);
} catch (\Exception $e) {
$results = $sth->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
throw new TelegramException($e->getMessage());
}
return $results;
......@@ -75,6 +75,7 @@ class ConversationDB extends DB
* @param string $command
*
* @return bool
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertConversation($user_id, $chat_id, $command)
{
......@@ -104,7 +105,7 @@ class ConversationDB extends DB
$sth->bindParam(':date', $created_at);
$status = $sth->execute();
} catch (\Exception $e) {
} catch (Exception $e) {
throw new TelegramException($e->getMessage());
}
return $status;
......@@ -133,6 +134,7 @@ class ConversationDB extends DB
* @todo This function is generic should be moved in DB.php
*
* @return bool
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function update($table, array $fields_values, array $where_fields_values)
{
......@@ -168,7 +170,7 @@ class ConversationDB extends DB
$where .= 'WHERE ';
}
++$tokens_counter;
$where .= '`' . $field .'`= :' . $tokens_counter;
$where .= '`' . $field . '`= :' . $tokens_counter;
$tokens[':' . $tokens_counter] = $value;
}
......@@ -176,7 +178,7 @@ class ConversationDB extends DB
try {
$sth = self::$pdo->prepare($query);
$status = $sth->execute($tokens);
} catch (\Exception $e) {
} catch (Exception $e) {
throw new TelegramException($e->getMessage());
}
return $status;
......
......@@ -19,18 +19,9 @@ use Longman\TelegramBot\Entities\Message;
use Longman\TelegramBot\Entities\Update;
use Longman\TelegramBot\Entities\User;
use Longman\TelegramBot\Exception\TelegramException;
use PDO;
use PDOException;
/**
* @package Telegram
* @author Avtandil Kikabidze <akalongman@gmail.com>
* @copyright Avtandil Kikabidze <akalongman@gmail.com>
* @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
* @link http://www.github.com/akalongman/php-telegram-bot
*/
/**
* Class DB.
*/
class DB
{
/**
......@@ -43,7 +34,7 @@ class DB
/**
* PDO object
*
* @var \PDO
* @var PDO
*/
static protected $pdo;
......@@ -57,7 +48,7 @@ class DB
/**
* Telegram class object
*
* @var Telegram
* @var \Longman\TelegramBot\Telegram
*/
static protected $telegram;
......@@ -65,25 +56,29 @@ class DB
* Initialize
*
* @param array $credentials Database connection details
* @param Telegram $telegram Telegram object to connect with this object
* @param \Longman\TelegramBot\Telegram $telegram Telegram object to connect with this object
* @param string $table_prefix Table prefix
* @param string $encoding Database character encoding
*
* @return \PDO PDO database object
* @throws TelegramException
* @return PDO PDO database object
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function initialize(array $credentials, Telegram $telegram, $table_prefix = null, $encoding = 'utf8mb4')
{
public static function initialize(
array $credentials,
Telegram $telegram,
$table_prefix = null,
$encoding = 'utf8mb4'
) {
if (empty($credentials)) {
throw new TelegramException('MySQL credentials not provided!');
}
$dsn = 'mysql:host=' . $credentials['host'] . ';dbname=' . $credentials['database'];
$options = [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $encoding];
$options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $encoding];
try {
$pdo = new \PDO($dsn, $credentials['user'], $credentials['password'], $options);
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING);
} catch (\PDOException $e) {
$pdo = new PDO($dsn, $credentials['user'], $credentials['password'], $options);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
......@@ -102,12 +97,12 @@ class DB
*
* Let you use the class with an external already existing Pdo Mysql connection.
*
* @param \PDO $external_pdo_connection PDO database object
* @param Telegram $telegram Telegram object to connect with this object
* @param PDO $external_pdo_connection PDO database object
* @param \Longman\TelegramBot\Telegram $telegram Telegram object to connect with this object
* @param string $table_prefix Table prefix
*
* @return \PDO PDO database object
* @throws TelegramException
* @return PDO PDO database object
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function externalInitialize($external_pdo_connection, Telegram $telegram, $table_prefix = null)
{
......@@ -131,31 +126,31 @@ class DB
protected static function defineTable()
{
if (!defined('TB_TELEGRAM_UPDATE')) {
define('TB_TELEGRAM_UPDATE', self::$table_prefix.'telegram_update');
define('TB_TELEGRAM_UPDATE', self::$table_prefix . 'telegram_update');
}
if (!defined('TB_MESSAGE')) {
define('TB_MESSAGE', self::$table_prefix.'message');
define('TB_MESSAGE', self::$table_prefix . 'message');
}
if (!defined('TB_EDITED_MESSAGE')) {
define('TB_EDITED_MESSAGE', self::$table_prefix.'edited_message');
define('TB_EDITED_MESSAGE', self::$table_prefix . 'edited_message');
}
if (!defined('TB_INLINE_QUERY')) {
define('TB_INLINE_QUERY', self::$table_prefix.'inline_query');
define('TB_INLINE_QUERY', self::$table_prefix . 'inline_query');
}
if (!defined('TB_CHOSEN_INLINE_RESULT')) {
define('TB_CHOSEN_INLINE_RESULT', self::$table_prefix.'chosen_inline_result');
define('TB_CHOSEN_INLINE_RESULT', self::$table_prefix . 'chosen_inline_result');
}
if (!defined('TB_CALLBACK_QUERY')) {
define('TB_CALLBACK_QUERY', self::$table_prefix.'callback_query');
define('TB_CALLBACK_QUERY', self::$table_prefix . 'callback_query');
}
if (!defined('TB_USER')) {
define('TB_USER', self::$table_prefix.'user');
define('TB_USER', self::$table_prefix . 'user');
}
if (!defined('TB_CHAT')) {
define('TB_CHAT', self::$table_prefix.'chat');
define('TB_CHAT', self::$table_prefix . 'chat');
}
if (!defined('TB_USER_CHAT')) {
define('TB_USER_CHAT', self::$table_prefix.'user_chat');
define('TB_USER_CHAT', self::$table_prefix . 'user_chat');
}
}
......@@ -179,7 +174,7 @@ class DB
* @param int $limit Limit the number of updates to fetch
*
* @return array|bool Fetched data or false if not connected
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function selectTelegramUpdate($limit = null)
{
......@@ -196,10 +191,10 @@ class DB
}
$sth_select_telegram_update = self::$pdo->prepare($query);
$sth_select_telegram_update->bindParam(':limit', $limit, \PDO::PARAM_INT);
$sth_select_telegram_update->bindParam(':limit', $limit, PDO::PARAM_INT);
$sth_select_telegram_update->execute();
$results = $sth_select_telegram_update->fetchAll(\PDO::FETCH_ASSOC);
} catch (\PDOException $e) {
$results = $sth_select_telegram_update->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
......@@ -212,7 +207,7 @@ class DB
* @param int $limit Limit the number of messages to fetch
*
* @return array|bool Fetched data or false if not connected
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function selectMessages($limit = null)
{
......@@ -231,10 +226,10 @@ class DB
}
$sth = self::$pdo->prepare($query);
$sth->bindParam(':limit', $limit, \PDO::PARAM_INT);
$sth->bindParam(':limit', $limit, PDO::PARAM_INT);
$sth->execute();
$results = $sth->fetchAll(\PDO::FETCH_ASSOC);
} catch (\PDOException $e) {
$results = $sth->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
......@@ -268,10 +263,17 @@ class DB
* @param int $edited_message_id
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertTelegramUpdate($id, $chat_id, $message_id, $inline_query_id, $chosen_inline_result_id, $callback_query_id, $edited_message_id)
{
public static function insertTelegramUpdate(
$id,
$chat_id,
$message_id,
$inline_query_id,
$chosen_inline_result_id,
$callback_query_id,
$edited_message_id
) {
if (is_null($message_id) && is_null($inline_query_id) && is_null($chosen_inline_result_id) && is_null($callback_query_id) && is_null($edited_message_id)) {
throw new TelegramException('message_id, inline_query_id, chosen_inline_result_id, callback_query_id, edited_message_id are all null');
}
......@@ -290,16 +292,17 @@ class DB
)
');
$sth_insert_telegram_update->bindParam(':id', $id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':message_id', $message_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':inline_query_id', $inline_query_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':chosen_inline_result_id', $chosen_inline_result_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':callback_query_id', $callback_query_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':edited_message_id', $edited_message_id, \PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':id', $id, PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':message_id', $message_id, PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':inline_query_id', $inline_query_id, PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':chosen_inline_result_id', $chosen_inline_result_id,
PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':callback_query_id', $callback_query_id, PDO::PARAM_INT);
$sth_insert_telegram_update->bindParam(':edited_message_id', $edited_message_id, PDO::PARAM_INT);
return $sth_insert_telegram_update->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -307,12 +310,12 @@ class DB
/**
* Insert users and save their connection to chats
*
* @param Entities\User $user
* @param \Longman\TelegramBot\Entities\User $user
* @param string $date
* @param Entities\Chat $chat
* @param \Longman\TelegramBot\Entities\Chat $chat
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertUser(User $user, $date, Chat $chat = null)
{
......@@ -337,14 +340,14 @@ class DB
`last_name`=:last_name, `updated_at`=:date
');
$sth1->bindParam(':id', $user_id, \PDO::PARAM_INT);
$sth1->bindParam(':username', $username, \PDO::PARAM_STR, 255);
$sth1->bindParam(':first_name', $first_name, \PDO::PARAM_STR, 255);
$sth1->bindParam(':last_name', $last_name, \PDO::PARAM_STR, 255);
$sth1->bindParam(':date', $date, \PDO::PARAM_STR);
$sth1->bindParam(':id', $user_id, PDO::PARAM_INT);
$sth1->bindParam(':username', $username, PDO::PARAM_STR, 255);
$sth1->bindParam(':first_name', $first_name, PDO::PARAM_STR, 255);
$sth1->bindParam(':last_name', $last_name, PDO::PARAM_STR, 255);
$sth1->bindParam(':date', $date, PDO::PARAM_STR);
$status = $sth1->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
......@@ -360,11 +363,11 @@ class DB
:user_id, :chat_id
)');
$sth3->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth3->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth3->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth3->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$status = $sth3->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -375,12 +378,12 @@ class DB
/**
* Insert chat
*
* @param Entities\Chat $chat
* @param \Longman\TelegramBot\Entities\Chat $chat
* @param string $date
* @param int $migrate_to_chat_id
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertChat(Chat $chat, $date, $migrate_to_chat_id = null)
{
......@@ -406,19 +409,19 @@ class DB
if ($migrate_to_chat_id) {
$type = 'supergroup';
$sth2->bindParam(':id', $migrate_to_chat_id, \PDO::PARAM_INT);
$sth2->bindParam(':oldid', $chat_id, \PDO::PARAM_INT);
$sth2->bindParam(':id', $migrate_to_chat_id, PDO::PARAM_INT);
$sth2->bindParam(':oldid', $chat_id, PDO::PARAM_INT);
} else {
$sth2->bindParam(':id', $chat_id, \PDO::PARAM_INT);
$sth2->bindParam(':oldid', $migrate_to_chat_id, \PDO::PARAM_INT);
$sth2->bindParam(':id', $chat_id, PDO::PARAM_INT);
$sth2->bindParam(':oldid', $migrate_to_chat_id, PDO::PARAM_INT);
}
$sth2->bindParam(':type', $type, \PDO::PARAM_INT);
$sth2->bindParam(':title', $chat_title, \PDO::PARAM_STR, 255);
$sth2->bindParam(':date', $date, \PDO::PARAM_STR);
$sth2->bindParam(':type', $type, PDO::PARAM_INT);
$sth2->bindParam(':title', $chat_title, PDO::PARAM_STR, 255);
$sth2->bindParam(':date', $date, PDO::PARAM_STR);
return $sth2->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -428,11 +431,11 @@ class DB
*
* @todo self::$pdo->lastInsertId() - unsafe usage if expected previous insert fails?
*
* @param Entities\Update &$update
* @param \Longman\TelegramBot\Entities\Update $update
*
* @return bool
*/
public static function insertRequest(Update &$update)
public static function insertRequest(Update $update)
{
$update_id = $update->getUpdateId();
if ($update->getUpdateType() == 'message') {
......@@ -455,7 +458,8 @@ class DB
if (self::insertChosenInlineResultRequest($chosen_inline_result)) {
$chosen_inline_result_local_id = self::$pdo->lastInsertId();
return self::insertTelegramUpdate($update_id, null, null, null, $chosen_inline_result_local_id, null, null);
return self::insertTelegramUpdate($update_id, null, null, null, $chosen_inline_result_local_id, null,
null);
}
} elseif ($update->getUpdateType() == 'callback_query') {
$callback_query = $update->getCallbackQuery();
......@@ -470,7 +474,8 @@ class DB
if (self::insertEditedMessageRequest($edited_message)) {
$chat_id = $edited_message->getChat()->getId();
$edited_message_local_id = self::$pdo->lastInsertId();
return self::insertTelegramUpdate($update_id, $chat_id, null, null, null, null, $edited_message_local_id);
return self::insertTelegramUpdate($update_id, $chat_id, null, null, null, null,
$edited_message_local_id);
}
}
......@@ -480,12 +485,12 @@ class DB
/**
* Insert inline query request into database
*
* @param Entities\InlineQuery &$inline_query
* @param \Longman\TelegramBot\Entities\InlineQuery $inline_query
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertInlineQueryRequest(InlineQuery &$inline_query)
public static function insertInlineQueryRequest(InlineQuery $inline_query)
{
if (!self::isDbConnected()) {
return false;
......@@ -515,15 +520,15 @@ class DB
$query = $inline_query->getQuery();
$offset = $inline_query->getOffset();
$sth_insert_inline_query->bindParam(':inline_query_id', $inline_query_id, \PDO::PARAM_INT);
$sth_insert_inline_query->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth_insert_inline_query->bindParam(':location', $location, \PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':query', $query, \PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':param_offset', $offset, \PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':created_at', $date, \PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':inline_query_id', $inline_query_id, PDO::PARAM_INT);
$sth_insert_inline_query->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth_insert_inline_query->bindParam(':location', $location, PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':query', $query, PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':param_offset', $offset, PDO::PARAM_STR);
$sth_insert_inline_query->bindParam(':created_at', $date, PDO::PARAM_STR);
return $sth_insert_inline_query->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -531,12 +536,12 @@ class DB
/**
* Insert chosen inline result request into database
*
* @param Entities\ChosenInlineResult &$chosen_inline_result
* @param \Longman\TelegramBot\Entities\ChosenInlineResult $chosen_inline_result
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertChosenInlineResultRequest(ChosenInlineResult &$chosen_inline_result)
public static function insertChosenInlineResultRequest(ChosenInlineResult $chosen_inline_result)
{
if (!self::isDbConnected()) {
return false;
......@@ -566,15 +571,15 @@ class DB
$inline_message_id = $chosen_inline_result->getInlineMessageId();
$query = $chosen_inline_result->getQuery();
$sth_insert_chosen_inline_result->bindParam(':result_id', $result_id, \PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth_insert_chosen_inline_result->bindParam(':location', $location, \PDO::PARAM_INT);
$sth_insert_chosen_inline_result->bindParam(':inline_message_id', $inline_message_id, \PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':query', $query, \PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':created_at', $date, \PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':result_id', $result_id, PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth_insert_chosen_inline_result->bindParam(':location', $location, PDO::PARAM_INT);
$sth_insert_chosen_inline_result->bindParam(':inline_message_id', $inline_message_id, PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':query', $query, PDO::PARAM_STR);
$sth_insert_chosen_inline_result->bindParam(':created_at', $date, PDO::PARAM_STR);
return $sth_insert_chosen_inline_result->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -582,12 +587,12 @@ class DB
/**
* Insert callback query request into database
*
* @param Entities\CallbackQuery &$callback_query
* @param \Longman\TelegramBot\Entities\CallbackQuery $callback_query
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertCallbackQueryRequest(CallbackQuery &$callback_query)
public static function insertCallbackQueryRequest(CallbackQuery $callback_query)
{
if (!self::isDbConnected()) {
return false;
......@@ -635,16 +640,16 @@ class DB
$inline_message_id = $callback_query->getInlineMessageId();
$data = $callback_query->getData();
$sth_insert_callback_query->bindParam(':callback_query_id', $callback_query_id, \PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':message_id', $message_id, \PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':inline_message_id', $inline_message_id, \PDO::PARAM_STR);
$sth_insert_callback_query->bindParam(':data', $data, \PDO::PARAM_STR);
$sth_insert_callback_query->bindParam(':created_at', $date, \PDO::PARAM_STR);
$sth_insert_callback_query->bindParam(':callback_query_id', $callback_query_id, PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':message_id', $message_id, PDO::PARAM_INT);
$sth_insert_callback_query->bindParam(':inline_message_id', $inline_message_id, PDO::PARAM_STR);
$sth_insert_callback_query->bindParam(':data', $data, PDO::PARAM_STR);
$sth_insert_callback_query->bindParam(':created_at', $date, PDO::PARAM_STR);
return $sth_insert_callback_query->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -652,12 +657,12 @@ class DB
/**
* Insert Message request in db
*
* @param Entities\Message &$message
* @param \Longman\TelegramBot\Entities\Message $message
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertMessageRequest(Message &$message)
public static function insertMessageRequest(Message $message)
{
if (!self::isDbConnected()) {
return false;
......@@ -762,13 +767,13 @@ class DB
$migrate_to_chat_id = $message->getMigrateToChatId();
$pinned_message = $message->getPinnedMessage();
$sth->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth->bindParam(':message_id', $message_id, \PDO::PARAM_INT);
$sth->bindParam(':user_id', $from_id, \PDO::PARAM_INT);
$sth->bindParam(':date', $date, \PDO::PARAM_STR);
$sth->bindParam(':forward_from', $forward_from, \PDO::PARAM_INT);
$sth->bindParam(':forward_from_chat', $forward_from_chat, \PDO::PARAM_INT);
$sth->bindParam(':forward_date', $forward_date, \PDO::PARAM_STR);
$sth->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$sth->bindParam(':message_id', $message_id, PDO::PARAM_INT);
$sth->bindParam(':user_id', $from_id, PDO::PARAM_INT);
$sth->bindParam(':date', $date, PDO::PARAM_STR);
$sth->bindParam(':forward_from', $forward_from, PDO::PARAM_INT);
$sth->bindParam(':forward_from_chat', $forward_from_chat, PDO::PARAM_INT);
$sth->bindParam(':forward_date', $forward_date, PDO::PARAM_STR);
$reply_chat_id = null;
if ($reply_to_message_id) {
......@@ -786,12 +791,12 @@ class DB
$entities = null;
}
$sth->bindParam(':reply_to_chat', $reply_chat_id, \PDO::PARAM_INT);
$sth->bindParam(':reply_to_message', $reply_to_message_id, \PDO::PARAM_INT);
$sth->bindParam(':text', $text, \PDO::PARAM_STR);
$sth->bindParam(':entities', $entities, \PDO::PARAM_STR);
$sth->bindParam(':audio', $audio, \PDO::PARAM_STR);
$sth->bindParam(':document', $document, \PDO::PARAM_STR);
$sth->bindParam(':reply_to_chat', $reply_chat_id, PDO::PARAM_INT);
$sth->bindParam(':reply_to_message', $reply_to_message_id, PDO::PARAM_INT);
$sth->bindParam(':text', $text, PDO::PARAM_STR);
$sth->bindParam(':entities', $entities, PDO::PARAM_STR);
$sth->bindParam(':audio', $audio, PDO::PARAM_STR);
$sth->bindParam(':document', $document, PDO::PARAM_STR);
$var = [];
if (is_array($photo)) {
......@@ -804,17 +809,17 @@ class DB
$photo = '';
}
$sth->bindParam(':photo', $photo, \PDO::PARAM_STR);
$sth->bindParam(':sticker', $sticker, \PDO::PARAM_STR);
$sth->bindParam(':video', $video, \PDO::PARAM_STR);
$sth->bindParam(':voice', $voice, \PDO::PARAM_STR);
$sth->bindParam(':caption', $caption, \PDO::PARAM_STR);
$sth->bindParam(':contact', $contact, \PDO::PARAM_STR);
$sth->bindParam(':location', $location, \PDO::PARAM_STR);
$sth->bindParam(':venue', $venue, \PDO::PARAM_STR);
$sth->bindParam(':new_chat_member', $new_chat_member, \PDO::PARAM_INT);
$sth->bindParam(':left_chat_member', $left_chat_member, \PDO::PARAM_INT);
$sth->bindParam(':new_chat_title', $new_chat_title, \PDO::PARAM_STR);
$sth->bindParam(':photo', $photo, PDO::PARAM_STR);
$sth->bindParam(':sticker', $sticker, PDO::PARAM_STR);
$sth->bindParam(':video', $video, PDO::PARAM_STR);
$sth->bindParam(':voice', $voice, PDO::PARAM_STR);
$sth->bindParam(':caption', $caption, PDO::PARAM_STR);
$sth->bindParam(':contact', $contact, PDO::PARAM_STR);
$sth->bindParam(':location', $location, PDO::PARAM_STR);
$sth->bindParam(':venue', $venue, PDO::PARAM_STR);
$sth->bindParam(':new_chat_member', $new_chat_member, PDO::PARAM_INT);
$sth->bindParam(':left_chat_member', $left_chat_member, PDO::PARAM_INT);
$sth->bindParam(':new_chat_title', $new_chat_title, PDO::PARAM_STR);
//Array of PhotoSize
$var = [];
......@@ -828,17 +833,17 @@ class DB
$new_chat_photo = '';
}
$sth->bindParam(':new_chat_photo', $new_chat_photo, \PDO::PARAM_STR);
$sth->bindParam(':delete_chat_photo', $delete_chat_photo, \PDO::PARAM_STR);
$sth->bindParam(':group_chat_created', $group_chat_created, \PDO::PARAM_STR);
$sth->bindParam(':supergroup_chat_created', $supergroup_chat_created, \PDO::PARAM_INT);
$sth->bindParam(':channel_chat_created', $channel_chat_created, \PDO::PARAM_INT);
$sth->bindParam(':migrate_from_chat_id', $migrate_from_chat_id, \PDO::PARAM_INT);
$sth->bindParam(':migrate_to_chat_id', $migrate_to_chat_id, \PDO::PARAM_INT);
$sth->bindParam(':pinned_message', $pinned_message, \PDO::PARAM_INT);
$sth->bindParam(':new_chat_photo', $new_chat_photo, PDO::PARAM_STR);
$sth->bindParam(':delete_chat_photo', $delete_chat_photo, PDO::PARAM_STR);
$sth->bindParam(':group_chat_created', $group_chat_created, PDO::PARAM_STR);
$sth->bindParam(':supergroup_chat_created', $supergroup_chat_created, PDO::PARAM_INT);
$sth->bindParam(':channel_chat_created', $channel_chat_created, PDO::PARAM_INT);
$sth->bindParam(':migrate_from_chat_id', $migrate_from_chat_id, PDO::PARAM_INT);
$sth->bindParam(':migrate_to_chat_id', $migrate_to_chat_id, PDO::PARAM_INT);
$sth->bindParam(':pinned_message', $pinned_message, PDO::PARAM_INT);
return $sth->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -846,12 +851,12 @@ class DB
/**
* Insert Edited Message request in db
*
* @param Entities\Message &$edited_message
* @param \Longman\TelegramBot\Entities\Message $edited_message
*
* @return bool If the insert was successful
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function insertEditedMessageRequest(Message &$edited_message)
public static function insertEditedMessageRequest(Message $edited_message)
{
if (!self::isDbConnected()) {
return false;
......@@ -887,10 +892,10 @@ class DB
$text = $edited_message->getText();
$caption = $edited_message->getCaption();
$sth->bindParam(':chat_id', $chat_id, \PDO::PARAM_INT);
$sth->bindParam(':message_id', $message_id, \PDO::PARAM_INT);
$sth->bindParam(':user_id', $from_id, \PDO::PARAM_INT);
$sth->bindParam(':date', $edit_date, \PDO::PARAM_STR);
$sth->bindParam(':chat_id', $chat_id, PDO::PARAM_INT);
$sth->bindParam(':message_id', $message_id, PDO::PARAM_INT);
$sth->bindParam(':user_id', $from_id, PDO::PARAM_INT);
$sth->bindParam(':date', $edit_date, PDO::PARAM_STR);
$var = [];
if (is_array($entities)) {
......@@ -903,12 +908,12 @@ class DB
$entities = null;
}
$sth->bindParam(':text', $text, \PDO::PARAM_STR);
$sth->bindParam(':entities', $entities, \PDO::PARAM_STR);
$sth->bindParam(':caption', $caption, \PDO::PARAM_STR);
$sth->bindParam(':text', $text, PDO::PARAM_STR);
$sth->bindParam(':entities', $entities, PDO::PARAM_STR);
$sth->bindParam(':caption', $caption, PDO::PARAM_STR);
return $sth->execute();
} catch (\PDOException $e) {
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
}
......@@ -925,7 +930,7 @@ class DB
* @param string $text
*
* @return array|bool (Selected chats or false if invalid arguments)
* @throws TelegramException
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function selectChats(
$select_groups = true,
......@@ -940,7 +945,7 @@ class DB
return false;
}
if (!$select_groups & !$select_users & !$select_super_groups) {
if (!$select_groups && !$select_users && !$select_super_groups) {
return false;
}
......@@ -983,29 +988,29 @@ class DB
$where[] = '(' . $chat_or_user . ')';
}
if (! is_null($date_from)) {
if (!is_null($date_from)) {
$where[] = TB_CHAT . '.`updated_at` >= :date_from';
$tokens[':date_from'] = $date_from;
}
if (! is_null($date_to)) {
if (!is_null($date_to)) {
$where[] = TB_CHAT . '.`updated_at` <= :date_to';
$tokens[':date_to'] = $date_to;
}
if (! is_null($chat_id)) {
if (!is_null($chat_id)) {
$where[] = TB_CHAT . '.`id` = :chat_id';
$tokens[':chat_id'] = $chat_id;
}
if (! is_null($text)) {
if (!is_null($text)) {
if ($select_users) {
$where[] = '(LOWER('.TB_CHAT . '.`title`) LIKE :text OR LOWER(' . TB_USER . '.`first_name`) LIKE :text OR LOWER(' . TB_USER . '.`last_name`) LIKE :text OR LOWER(' . TB_USER . '.`username`) LIKE :text)';
$where[] = '(LOWER(' . TB_CHAT . '.`title`) LIKE :text OR LOWER(' . TB_USER . '.`first_name`) LIKE :text OR LOWER(' . TB_USER . '.`last_name`) LIKE :text OR LOWER(' . TB_USER . '.`username`) LIKE :text)';
} else {
$where[] = 'LOWER('.TB_CHAT . '.`title`) LIKE :text';
$where[] = 'LOWER(' . TB_CHAT . '.`title`) LIKE :text';
}
$tokens[':text'] = '%'.strtolower($text).'%';
$tokens[':text'] = '%' . strtolower($text) . '%';
}
$a = 0;
......@@ -1023,8 +1028,8 @@ class DB
$sth = self::$pdo->prepare($query);
$sth->execute($tokens);
$result = $sth->fetchAll(\PDO::FETCH_ASSOC);
} catch (\PDOException $e) {
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
throw new TelegramException($e->getMessage());
}
......
......@@ -21,7 +21,7 @@ class Request
/**
* Telegram object
*
* @var Telegram
* @var \Longman\TelegramBot\Telegram
*/
private static $telegram;
......@@ -86,7 +86,8 @@ class Request
/**
* Initialize
*
* @param Telegram $telegram
* @param \Longman\TelegramBot\Telegram $telegram
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function initialize(Telegram $telegram)
{
......@@ -102,6 +103,7 @@ class Request
* Set input from custom input or stdin and return it
*
* @return string
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getInput()
{
......@@ -166,6 +168,7 @@ class Request
* @param array|null $data Data to attach to the execution
*
* @return mixed Result of the HTTP Request
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function execute($action, array $data = null)
{
......@@ -224,6 +227,7 @@ class Request
* @param Entities\File $file
*
* @return boolean
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function downloadFile(File $file)
{
......@@ -260,6 +264,7 @@ class Request
* @param string $file
*
* @return resource
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
protected static function encodeFile($file)
{
......@@ -278,7 +283,8 @@ class Request
* @param string $action
* @param array|null $data
*
* @return Entities\ServerResponse
* @return \Longman\TelegramBot\Entities\ServerResponse
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function send($action, array $data = null)
{
......@@ -322,6 +328,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendMessage(array $data)
{
......@@ -345,6 +352,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function forwardMessage(array $data)
{
......@@ -362,6 +370,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendPhoto(array $data, $file = null)
{
......@@ -383,6 +392,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendAudio(array $data, $file = null)
{
......@@ -404,6 +414,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendDocument(array $data, $file = null)
{
......@@ -425,6 +436,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendSticker(array $data, $file = null)
{
......@@ -446,6 +458,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendVideo(array $data, $file = null)
{
......@@ -467,6 +480,7 @@ class Request
* @param string $file
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendVoice(array $data, $file = null)
{
......@@ -487,6 +501,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendLocation(array $data)
{
......@@ -503,6 +518,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendVenue(array $data)
{
......@@ -519,6 +535,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendContact(array $data)
{
......@@ -535,6 +552,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendChatAction(array $data)
{
......@@ -551,6 +569,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getUserProfilePhotos(array $data)
{
......@@ -602,6 +621,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getFile(array $data)
{
......@@ -618,6 +638,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function kickChatMember(array $data)
{
......@@ -634,6 +655,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function leaveChat(array $data)
{
......@@ -650,6 +672,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function unbanChatMember(array $data)
{
......@@ -668,6 +691,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getChat(array $data)
{
......@@ -686,6 +710,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getChatAdministrators(array $data)
{
......@@ -704,6 +729,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getChatMembersCount(array $data)
{
......@@ -722,6 +748,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function getChatMember(array $data)
{
......@@ -738,6 +765,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function answerCallbackQuery(array $data)
{
......@@ -754,6 +782,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function answerInlineQuery(array $data)
{
......@@ -770,6 +799,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function editMessageText(array $data)
{
......@@ -786,6 +816,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function editMessageCaption(array $data)
{
......@@ -802,6 +833,7 @@ class Request
* @param array $data
*
* @return mixed
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function editMessageReplyMarkup(array $data)
{
......@@ -837,6 +869,7 @@ class Request
* @param string $date_to
*
* @return array
* @throws \Longman\TelegramBot\Exception\TelegramException
*/
public static function sendToActiveChats(
$callback_function,
......
......@@ -16,7 +16,6 @@ define('BASE_COMMANDS_PATH', BASE_PATH . '/Commands');
use Longman\TelegramBot\Entities\Update;
use Longman\TelegramBot\Exception\TelegramException;
class Telegram
{
/**
......@@ -152,6 +151,7 @@ class Telegram
*
* @param array $credential
* @param string $table_prefix
* @param string $encoding
*
* @return \Longman\TelegramBot\Telegram
*/
......
......@@ -15,9 +15,6 @@ use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
use Longman\TelegramBot\Exception\TelegramLogException;
/**
* Class TelegramLog.
*/
class TelegramLog
{
/**
......@@ -99,6 +96,7 @@ class TelegramLog
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
*/
public static function initErrorLog($path)
{
......@@ -120,6 +118,7 @@ class TelegramLog
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
*/
public static function initDebugLog($path)
{
......@@ -179,6 +178,7 @@ class TelegramLog
* @param string $path
*
* @return \Monolog\Logger
* @throws \Longman\TelegramBot\Exception\TelegramLogException
*/
public static function initUpdateLog($path)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment