55 lines
2.0 KiB
PHP
Executable File
55 lines
2.0 KiB
PHP
Executable File
<?php
|
||
// assistance/crm_handler.php
|
||
|
||
/**
|
||
* Отправляет финальный результат анализа в CRM.
|
||
*
|
||
* @param string $caseId Идентификатор кейса.
|
||
* @param array $analysis Массив с результатами анализа (например, статус, контент, вердикт).
|
||
* @return bool Успешно ли выполнена отправка.
|
||
*/
|
||
function sendAnalysisToCRM($caseId, $analysis) {
|
||
// Формируем финальный ответ
|
||
$final_output = [
|
||
"case_id" => $caseId,
|
||
"status" => $analysis['status'] ?? 'error',
|
||
"content" => $analysis['content'] ?? 'Анализ не выполнен',
|
||
"moderationVerdict" => $analysis['moderationVerdict'] ?? 'Не определен'
|
||
];
|
||
|
||
// Пример URL API CRM (замените на реальный адрес API вашего CRM)
|
||
$crm_api_url = "https://your-crm.example.com/api/analysis";
|
||
|
||
$json_output = json_encode($final_output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||
if ($json_output === false) {
|
||
logMessage("Ошибка кодирования JSON в crm_handler: " . json_last_error_msg());
|
||
return false;
|
||
}
|
||
|
||
$ch = curl_init($crm_api_url);
|
||
curl_setopt_array($ch, [
|
||
CURLOPT_RETURNTRANSFER => true,
|
||
CURLOPT_POST => true,
|
||
CURLOPT_POSTFIELDS => $json_output,
|
||
CURLOPT_HTTPHEADER => ['Content-Type: application/json']
|
||
]);
|
||
|
||
$response = curl_exec($ch);
|
||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||
$curlError = curl_error($ch);
|
||
curl_close($ch);
|
||
|
||
if ($curlError) {
|
||
logMessage("Ошибка cURL в crm_handler: " . $curlError);
|
||
return false;
|
||
}
|
||
if ($httpCode < 200 || $httpCode >= 300) {
|
||
logMessage("Ошибка отправки в CRM: HTTP $httpCode - " . $response);
|
||
return false;
|
||
}
|
||
|
||
logMessage("Анализ успешно отправлен в CRM: " . $response);
|
||
return true;
|
||
}
|
||
?>
|