ваше сообщение коммита

This commit is contained in:
2025-04-10 18:27:06 +03:00
parent f695dea7ba
commit 6f1cebe27b
11 changed files with 979 additions and 482 deletions

View File

@@ -232,11 +232,17 @@ class AuthService {
// Создание сессии с проверкой роли
async createSession(session, { userId, authenticated, authType, guestId, address }) {
try {
// Если пользователь аутентифицирован, обрабатываем гостевые сообщения
if (authenticated && guestId) {
await this.processAndCleanupGuestData(userId, guestId, session);
}
// Обновляем данные сессии
session.userId = userId;
session.authenticated = authenticated;
session.authType = authType;
session.guestId = guestId;
// Сохраняем адрес кошелька если есть
if (address) {
session.address = address;
}
@@ -250,7 +256,6 @@ class AuthService {
userId,
authenticated,
authType,
guestId,
address,
cookie: session.cookie
}), session.id]
@@ -263,6 +268,31 @@ class AuthService {
}
}
/**
* Обработка и очистка гостевых данных после авторизации
* @param {number} userId - ID пользователя
* @param {string} guestId - Гостевой ID
* @param {Object} session - Объект сессии
*/
async processAndCleanupGuestData(userId, guestId, session) {
try {
// Обрабатываем гостевые сообщения
const { processGuestMessages } = require('../routes/chat');
await processGuestMessages(userId, guestId);
// Очищаем гостевой ID из сессии
delete session.guestId;
if (session.previousGuestId) {
delete session.previousGuestId;
}
logger.info(`Cleaned up guest data for user ${userId}, guest ID ${guestId}`);
} catch (error) {
logger.error('Error processing and cleaning up guest data:', error);
throw error;
}
}
async getSession(sessionId) {
try {
const result = await db.query('SELECT * FROM session WHERE sid = $1', [sessionId]);