Add Telegram Bot webhook integration
This commit is contained in:
73
src/Helpers/SessionHelper.php
Normal file
73
src/Helpers/SessionHelper.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
class SessionHelper
|
||||
{
|
||||
private static $sessionFile;
|
||||
|
||||
private static function getSessionFile()
|
||||
{
|
||||
if (self::$sessionFile === null) {
|
||||
$storageDir = __DIR__ . "/../../storage";
|
||||
if (!file_exists($storageDir)) {
|
||||
mkdir($storageDir, 0777, true);
|
||||
}
|
||||
self::$sessionFile = $storageDir . "/telegram_sessions.json";
|
||||
}
|
||||
return self::$sessionFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load all sessions
|
||||
*/
|
||||
public static function loadSessions()
|
||||
{
|
||||
$file = self::getSessionFile();
|
||||
|
||||
if (!file_exists($file)) {
|
||||
file_put_contents($file, json_encode(["sessions" => []], JSON_PRETTY_PRINT));
|
||||
}
|
||||
|
||||
$json = json_decode(file_get_contents($file), true);
|
||||
return $json["sessions"] ?? [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Save all sessions
|
||||
*/
|
||||
public static function saveSessions($sessions)
|
||||
{
|
||||
$file = self::getSessionFile();
|
||||
file_put_contents($file, json_encode(["sessions" => $sessions], JSON_PRETTY_PRINT));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get session for a chat ID
|
||||
*/
|
||||
public static function getSession($chatId)
|
||||
{
|
||||
$sessions = self::loadSessions();
|
||||
return $sessions[$chatId] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set session for a chat ID
|
||||
*/
|
||||
public static function setSession($chatId, $value)
|
||||
{
|
||||
$sessions = self::loadSessions();
|
||||
$sessions[$chatId] = $value;
|
||||
self::saveSessions($sessions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear session for a chat ID
|
||||
*/
|
||||
public static function clearSession($chatId)
|
||||
{
|
||||
$sessions = self::loadSessions();
|
||||
unset($sessions[$chatId]);
|
||||
self::saveSessions($sessions);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user