de-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:40:17.367 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:40:52.333 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:41:12.190 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:41:27.176 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:41:35.216 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) 2026-02-03 17:41:45.250 [error] Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-serve provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:10.670 [error] [inlineCompletionItemProvider] provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:10.670 [error] [inlineCompletionItemProvider] provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:10.670 [info] ccreq:7192ffd9.copilotmd | markdown 2026-02-03 17:40:10.670 [info] ccreq:576609a9.copilotmd | markdown 2026-02-03 17:40:10.670 [info] ccreq:1f3dde6d.copilotmd | markdown 2026-02-03 17:40:11.226 [warning] GitHub login failed 2026-02-03 17:40:11.232 [error] [inlineCompletionItemProvider] provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:11.233 [error] [inlineCompletionItemProvider] provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:11.233 [info] ccreq:3cc3b945.copilotmd | markdown 2026-02-03 17:40:11.233 [info] ccreq:27e8867e.copilotmd | markdown 2026-02-03 17:40:16.366 [warning] GitHub login failed 2026-02-03 17:40:36.291 [warning] GitHub login failed 2026-02-03 17:40:36.295 [error] [inlineCompletionItemProvider] provideInlineCompletionItems: [Error: GitHubLoginFailed at Vj._authShowWarnings (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:14359) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Vj.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1378:12194) at async Cee.getCopilotToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1093:2402) at async tO.updateCachedToken (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1935:22483) at async gO.updateExPValuesAndAssignments (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:1941:3591) at async _oi (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:9954) at async Ldt (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2178:6870) at async uL.getInlineCompletionsResult (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1580) at async uL.getInlineCompletions (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:2185:1213) at async OK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4455:4035) at async zK._provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:1510) at async zK.provideInlineCompletionItems (/home/ubuntu/.vscode-server/extensions/github.copilot-chat-0.36.2/dist/extension.js:4471:947) at async Co.provideInlineCompletions (file:///home/ubuntu/.vscode-server/cli/servers/Stable-c9d77990917f3102ada88be140d28b038d1dd7c7/server/out/vs/workbench/api/node/extensionHostProcess.js:144:157911)] 2026-02-03 17:40:36.295 [info] ccreq:5fa19eb7.copilotmd | markdown 2026-02-03 17:40:40.177 [warning] GitHub login failed 2026-02-03 17:40:40.180 [error] [inlineCompletionItemProvider] provi 'https://www.zohoapis.com/crm/v2/Enforcements/' . $EnforcementID . '/photo', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); // ejecución y obtención de información de la llamada $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; // valida si el servicio devolvió código indicando que el registro no contiene una foto if($response_code === 204) { $hasPhoto = false; writeLog($idProcess, "Intento " . $retryCount . " el registro no contiene foto asociada"); } else { writeLog($idProcess, "Intento " . $retryCount . " para obtener imagen de enforcement de CRM, respuesta: " . $response_code); } // validación de código de respuesta http if ($response_code === 200) { $success = true; } else { $retryCount++; writeLog($idProcess, "ERROR al obtener imagen, intento: " . $retryCount . " , respuesta: " . json_encode(json_decode($response), JSON_PRETTY_PRINT)); // espera 2 segundos antes de reintentar la solicitud y evitar colisiones sleep(2); } } if(!$hasPhoto) { // devuelve mensaje e interrumpe el proceso $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'El registro no contiene foto asociada', ); writeLog($idProcess, 'No se pudo encontrar una imagen asociada a registro de CRM \n'); $imageData = array( 'id' => $EnforcementID, 'Imagen' => '', ); $curl = curl_init(); // configuración para actualzar enforcement limpiando datos de imagen curl_setopt_array($curl, array( CURLOPT_URL => 'https://www.zohoapis.com/crm/v2/Enforcements/' . $EnforcementID, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => json_encode( array( 'data' => array($imageData), )), CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; curl_close($curl); echo json_encode($errorResponse); return json_encode($errorResponse); } // valida el error después de reeintentar if (!$success) { // devuelve mensaje de error e interrumpe el proceso $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al obtener imagen desde CRM, porfavor confirme si hay una imagen adjunta al registro', ); writeLog($idProcess, 'Error al obtener imagen desde CRM, porfavor confirme si hay una imagen adjunta al registro \n'); echo json_encode($errorResponse); return json_encode($errorResponse); } // extrae imagen y sus propiedades $content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); $image_type = strstr( $content_type, ';', true); $extension = str_replace( '/', '.', strstr( $image_type, '/' ) ); curl_close($curl); // creación de ruta para guardar imagen $filename = $RefAL . $extension; $directory = './LogosArochiEnforcement/'; if (!is_dir($directory)) { mkdir($directory, 0755, true); } if (!is_writable($directory)) { echo "ERROR: No hay permisos de escritura en ". $directory; } $filename_fullpath = $directory . $RefAL . $extension; /************************************************************ * Guardado de imagen en directorio local ************************************************************/ // variables para control de reintentos de guardado local de imagen $retryCountImgLocal = 0; $successImgLocal = false; // cicla reintentos para guardar imagen localmente while ($retryCountImgLocal < $maxRetries && !$successImgLocal) { // guarda imagen en directorio local con ruta creada anteriomente $fp = fopen($filename_fullpath, 'w'); fwrite($fp, $response); fclose($fp); //echo 'intentos para guardar imagen localmente: '. ($retryCountImgLocal+1); // Validar el guardado de la imagen localmente if (file_exists($filename_fullpath)) { $successImgLocal = true; writeLog($idProcess, "Imagen guardada localmente de manera exitosa"); } else { writeLog($idProcess, "Error al guardar imagen localmente"); $retryCount++; $retryCountImgLocal++; //No aumentaba por ciclo sleep(2); // espera 2 segundos antes de reintentar el guardado para evitar colisiones } } // valida si la imagen fue guardada correctamente if (!$successImgLocal) { // devuelve mensaje de error e interrumpe ejecución $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al guardar imagen en directorio local', ); echo json_encode($errorResponse); return json_encode($errorResponse); } $imageData = array( 'id' => $EnforcementID, 'Imagen' => 'https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochiEnforcement/' . $filename , ); $retryCountUpdCrm = 0; $successUpdCrm = false; /************************************************************ * Actualización de enforcement en CRM con datos de imagen ************************************************************/ // se cicla proceso para reintentar en caso de fallo al actualizar while ($retryCountUpdCrm < $maxRetries && !$successUpdCrm) { $curl = curl_init(); // configuración para ACTUALIZAR enforcement con datos de imagen curl_setopt_array($curl, array( CURLOPT_URL => 'https://www.zohoapis.com/crm/v2/Enforcements/' . $EnforcementID, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => json_encode( array( 'data' => array($imageData), )), CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; curl_close($curl); writeLog($idProcess, "Intento " . $retryCountUpdCrm . " para actualizar CRM con datos de url de enforcement: " . json_encode(json_decode($response), JSON_PRETTY_PRINT)); // validación de código http if ($response_code === 200) { $successUpdCrm = true; } else { $retryCountUpdCrm++; sleep(2); // espera 2 segundos antes de reintentar la solicitud } } // valida si la imagen fue guardada correctamente if (!$successUpdCrm) { // si la actualización del registro fue fallida elimina la imagen $filename_fullpath = './LogosArochiEnforcement/' . $RefAL . '.png'; unlink($filename_fullpath); // devuelve mensaje de error e interrumpe ejecución $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al guardar imagen en directorio local', ); } // objeto de respuesta exitosa $successResponse = array( 'id' => $EnforcementID, 'Imagen' => 'https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochiEnforcement/' . $filename , 'message' => 'Imagen guardada exitosamente', ); // se guarda entrada en log writeLog($idProcess, "Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochiEnforcement/" . $filename . " \n"); echo json_encode( $successUpdCrm? $successResponse: $errorResponse ); return json_encode($successUpdCrm? $successResponse: $errorResponse); } else { // se guarda entrada en log writeLog($idProcess, "Parámetros incompletos, solicitud: " . json_encode($_REQUEST)); } /** * Escribe/añade una entrada al archivo log correspondiente */ function writeLog($idProcess, $message) { $directory = './Logs'; // verificar si el directorio existe if (!is_dir($directory)) { mkdir($directory, 0777, true); } // obtener la fecha y hora actual $timestamp = date("Y-m-d H:i:s"); $filename = date("Y-m-d") . '.log'; // concatenar fecha y hora con el mensaje $logMessage = "[" . $idProcess . "](" . $timestamp . ") - " . $message . "\n"; // escribir en el archivo .log file_put_contents($directory . '/' . $filename, $logMessage, FILE_APPEND); } /** * Genera un ID para identificar procesos */ function generateUUID() { return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) ); }