60 lines
2.1 KiB
PHP
60 lines
2.1 KiB
PHP
|
|
<?php
|
|||
|
|
// analyze_case_proxy.php - 100% совместим с PHP 7.0
|
|||
|
|
|
|||
|
|
// 1. Получаем параметры (максимально простой способ)
|
|||
|
|
$caseId = isset($_POST['id']) ? $_POST['id'] : (isset($_GET['id']) ? $_GET['id'] : '');
|
|||
|
|
$description = isset($_POST['query_text']) ? $_POST['query_text'] : (isset($_GET['query_text']) ? $_GET['query_text'] : '');
|
|||
|
|
|
|||
|
|
// 2. Валидация
|
|||
|
|
if (empty($caseId)) {
|
|||
|
|
header('Content-Type: application/json');
|
|||
|
|
die('{"status":"error","message":"Missing ID"}');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 3. Подготовка запроса
|
|||
|
|
$request = array(
|
|||
|
|
'id' => $caseId,
|
|||
|
|
'description' => $description
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// 4. Отправка в n8n (упрощённый cURL)
|
|||
|
|
$ch = curl_init('https://n8n.clientright.pro/webhook-test/analyze-case');
|
|||
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|||
|
|
curl_setopt($ch, CURLOPT_POST, 1);
|
|||
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($request));
|
|||
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
|
|||
|
|
$response = curl_exec($ch);
|
|||
|
|
curl_close($ch);
|
|||
|
|
|
|||
|
|
// 5. Очистка ответа (удаляем BOM если есть)
|
|||
|
|
if (substr($response, 0, 3) == pack('CCC', 0xEF, 0xBB, 0xBF)) {
|
|||
|
|
$response = substr($response, 3);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 6. Парсинг ответа (с защитой от ошибок)
|
|||
|
|
$result = array(
|
|||
|
|
'jobId' => '',
|
|||
|
|
'case_id' => $caseId, // сохраняем исходный ID как fallback
|
|||
|
|
'Id' => 0,
|
|||
|
|
'moderationVerdict' => 'passed'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
if (!empty($response)) {
|
|||
|
|
$data = json_decode($response, true);
|
|||
|
|
if (is_array($data)) {
|
|||
|
|
// Обрабатываем как массив или одиночный объект
|
|||
|
|
$item = isset($data[0]) ? $data[0] : $data;
|
|||
|
|
|
|||
|
|
if (isset($item['jobId'])) $result['jobId'] = $item['jobId'];
|
|||
|
|
if (isset($item['case_id'])) $result['case_id'] = $item['case_id'];
|
|||
|
|
if (isset($item['Id'])) $result['Id'] = intval($item['Id']);
|
|||
|
|
if (isset($item['moderationVerdict'])) {
|
|||
|
|
$result['moderationVerdict'] = $item['moderationVerdict'];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 7. Отправляем результат
|
|||
|
|
header('Content-Type: application/json');
|
|||
|
|
echo json_encode($result);
|
|||
|
|
?>
|