Вход Регистрация
Файл: upload/core/vendor/longman/telegram-bot/src/ConversationDB.php
Строк: 104
<?php

/**
 * This file is part of the TelegramBot package.
 *
 * (c) Avtandil Kikabidze aka LONGMAN <akalongman@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace LongmanTelegramBot;

use 
Exception;
use 
LongmanTelegramBotExceptionTelegramException;
use 
PDO;

class 
ConversationDB extends DB
{
    
/**
     * Initialize conversation table
     */
    
public static function initializeConversation(): void
    
{
        if (!
defined('TB_CONVERSATION')) {
            
define('TB_CONVERSATION'self::$table_prefix 'conversation');
        }
    }

    
/**
     * Select a conversation from the DB
     *
     * @param int $user_id
     * @param int $chat_id
     * @param int $limit
     *
     * @return array|bool
     * @throws TelegramException
     */
    
public static function selectConversation(int $user_idint $chat_id$limit 0)
    {
        if (!
self::isDbConnected()) {
            return 
false;
        }

        try {
            
$sql '
              SELECT *
              FROM `' 
TB_CONVERSATION '`
              WHERE `status` = :status
                AND `chat_id` = :chat_id
                AND `user_id` = :user_id
            '
;

            if (
$limit 0) {
                
$sql .= ' LIMIT :limit';
            }

            
$sth self::$pdo->prepare($sql);

            
$sth->bindValue(':status''active');
            
$sth->bindValue(':user_id'$user_id);
            
$sth->bindValue(':chat_id'$chat_id);

            if (
$limit 0) {
                
$sth->bindValue(':limit'$limitPDO::PARAM_INT);
            }

            
$sth->execute();

            return 
$sth->fetchAll(PDO::FETCH_ASSOC);
        } catch (
Exception $e) {
            throw new 
TelegramException($e->getMessage());
        }
    }

    
/**
     * Insert the conversation in the database
     *
     * @param int    $user_id
     * @param int    $chat_id
     * @param string $command
     *
     * @return bool
     * @throws TelegramException
     */
    
public static function insertConversation(int $user_idint $chat_idstring $command): bool
    
{
        if (!
self::isDbConnected()) {
            return 
false;
        }

        try {
            
$sth self::$pdo->prepare('INSERT INTO `' TB_CONVERSATION '`
                (`status`, `user_id`, `chat_id`, `command`, `notes`, `created_at`, `updated_at`)
                VALUES
                (:status, :user_id, :chat_id, :command, :notes, :created_at, :updated_at)
            '
);

            
$date self::getTimestamp();

            
$sth->bindValue(':status''active');
            
$sth->bindValue(':command'$command);
            
$sth->bindValue(':user_id'$user_id);
            
$sth->bindValue(':chat_id'$chat_id);
            
$sth->bindValue(':notes''[]');
            
$sth->bindValue(':created_at'$date);
            
$sth->bindValue(':updated_at'$date);

            return 
$sth->execute();
        } catch (
Exception $e) {
            throw new 
TelegramException($e->getMessage());
        }
    }

    
/**
     * Update a specific conversation
     *
     * @param array $fields_values
     * @param array $where_fields_values
     *
     * @return bool
     * @throws TelegramException
     */
    
public static function updateConversation(array $fields_values, array $where_fields_values): bool
    
{
        
// Auto update the update_at field.
        
$fields_values['updated_at'] = self::getTimestamp();

        return 
self::update(TB_CONVERSATION$fields_values$where_fields_values);
    }
}
Онлайн: 0
Реклама