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

This commit is contained in:
2025-12-12 15:57:49 +03:00
parent 2508fc4fd6
commit 97de2347b2
4 changed files with 27 additions and 3 deletions

View File

@@ -716,11 +716,18 @@ class UniversalGuestService {
// 5. Переносим согласия гостя на пользователя, если они есть
// Согласия могут быть связаны с гостевой сессией через wallet_address = "guest_${guestId}"
// Только для web-гостей (формат: web:guest_xxx)
try {
const [channel, guestId] = identifier.split(':');
// Мигрируем согласия только для web-гостей
if (channel !== 'web' || !guestId?.startsWith('guest_')) {
logger.info(`[UniversalGuestService] Пропуск миграции согласий для ${identifier} (не web-гость)`);
return { migrated, skipped };
}
// Ищем согласия по гостевому идентификатору в формате "guest_${guestId}"
const guestWalletAddress = `guest_${guestId}`;
const guestWalletAddress = guestId; // Уже в формате "guest_xxx"
const { rows: guestConsents } = await db.getQuery()(`
SELECT id, consent_type, document_id, document_title, status, signed_at, ip_address, user_agent, channel as consent_channel

View File

@@ -497,7 +497,7 @@ class EmailBot {
return {
channel: 'email',
identifier: fromEmail,
identifier: `email:${fromEmail}`, // Формируем identifier с префиксом provider
content: text,
contentData: contentData,
attachments: mediaFiles, // Обратная совместимость

View File

@@ -313,7 +313,7 @@ class TelegramBot {
return {
channel: 'telegram',
identifier: telegramId,
identifier: `telegram:${telegramId}`, // Формируем identifier с префиксом provider
content: content,
contentData: contentData,
attachments: mediaFiles, // Обратная совместимость

View File

@@ -115,6 +115,18 @@ async function processMessage(messageData) {
// 1. Разбираем идентификатор
const [provider, providerId] = identifier.split(':');
// Проверяем формат identifier (должен быть provider:providerId)
if (!providerId) {
logger.warn(`[UnifiedMessageProcessor] Неверный формат identifier (нет префикса): ${identifier}, обрабатываем как гостя`);
return await universalGuestService.processMessage({
identifier,
content,
channel,
metadata,
...messageData
});
}
// 2. Для telegram/email: автоматически создаем пользователя, если его нет
if ((provider === 'telegram' || provider === 'email') && providerId) {
let user = await identityService.findUserByIdentity(provider, providerId);
@@ -509,6 +521,11 @@ async function checkIfGuest(identifier) {
// Разбираем идентификатор
const [provider, providerId] = identifier.split(':');
// Если нет providerId (старый формат без префикса) - считаем гостем
if (!providerId) {
return true;
}
// Проверяем что это не web:guest_*
if (provider === 'web' && providerId.startsWith('guest_')) {
return true; // Это web гость