Files
crm.clientright.ru/ticket_form/docs/N8N_CODE_NODE_RESPONSE_SAFE.js
Fedor de011efba9 fix: исправлен конфликт имён переменных в loadDraft (claimId -> finalClaimId)
- Исправлена ошибка ReferenceError при загрузке черновиков
- Переименована локальная переменная claimId в finalClaimId для избежания конфликта с параметром функции
- Обновлена логика извлечения claim_id из разных источников (claim.claim_id, payload.claim_id, body.claim_id, claim.id)
- Добавлен fallback на параметр claimId функции для надёжности
2025-11-19 23:33:52 +03:00

48 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ========================================
// Code Node: Формирование Response для фронта (безопасная версия с проверками)
// (перед финальной Response нодой)
// ========================================
// Получаем данные из предыдущих шагов
const claimResult = $node["CreateWebContact"]?.json?.result || {};
const sessionDataItem = $('Code in JavaScript1')?.first();
const sessionData = sessionDataItem?.json?.redis_value
? JSON.parse(sessionDataItem.json.redis_value)
: {};
const userData = $node["user_get"]?.json || {}; // ← Данные из PostgreSQL: Find or Create User
// Проверяем наличие unified_id (критически важно!)
if (!userData.unified_id) {
console.error('❌ ОШИБКА: unified_id не получен из ноды user_get!');
// Можно либо выбросить ошибку, либо продолжить без unified_id (не рекомендуется)
}
// Формируем ответ в формате, который ожидает фронт
return {
success: true,
result: {
claim_id: sessionData.claim_id || claimResult.claim_id,
contact_id: sessionData.contact_id || claimResult.contact_id,
project_id: sessionData.project_id,
// Unified ID из PostgreSQL (обязательно!)
unified_id: userData.unified_id, // из ноды user_get (PostgreSQL: Find or Create User)
// Данные заявки
ticket_id: claimResult.ticket_id,
ticket_number: claimResult.ticket_number,
title: claimResult.title,
category: claimResult.category,
status: claimResult.status,
// Метаданные
event_type: sessionData.event_type,
current_step: sessionData.current_step || 1,
updated_at: sessionData.updated_at || new Date().toISOString(),
// Дополнительно
is_new_contact: claimResult.is_new_contact || false
}
};