ваше сообщение коммита
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -497,7 +497,7 @@ class EmailBot {
|
||||
|
||||
return {
|
||||
channel: 'email',
|
||||
identifier: fromEmail,
|
||||
identifier: `email:${fromEmail}`, // Формируем identifier с префиксом provider
|
||||
content: text,
|
||||
contentData: contentData,
|
||||
attachments: mediaFiles, // Обратная совместимость
|
||||
|
||||
@@ -313,7 +313,7 @@ class TelegramBot {
|
||||
|
||||
return {
|
||||
channel: 'telegram',
|
||||
identifier: telegramId,
|
||||
identifier: `telegram:${telegramId}`, // Формируем identifier с префиксом provider
|
||||
content: content,
|
||||
contentData: contentData,
|
||||
attachments: mediaFiles, // Обратная совместимость
|
||||
|
||||
@@ -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 гость
|
||||
|
||||
Reference in New Issue
Block a user