Cambios para quitar la hora de los mensajes que se envían a los clientes, corrección en la función getVaultCredentials para poder enviar el mensaje con la contraseña al instalador
This commit is contained in:
parent
e899945ca3
commit
5374054289
10
README.md
10
README.md
@ -4,6 +4,16 @@ Este plugin sincroniza los clientes del sitema UISP CRM con los contactos de Wha
|
|||||||
|
|
||||||
## REGISTRO DE CAMBIOS
|
## REGISTRO DE CAMBIOS
|
||||||
|
|
||||||
|
# VERSIÓN 2.8.5
|
||||||
|
## 🔵 Mejoras
|
||||||
|
1️⃣ Se modificó la información para el envío de notificaciones a los clientes para su visita técnica: ahora ya no se envían las horas en que serán las visitas, SOLO LA FECHA.
|
||||||
|
2️⃣ Se crearon nuevas plantillas de tipo utilidad y se adaptaron al flujo de trabajo en el código.
|
||||||
|
|
||||||
|
## 🟡 Bugs Resueltos
|
||||||
|
1️⃣ Se soluciono el bug que impedía enviar notificaciones a los instaladores para nuevas tareas.
|
||||||
|
|
||||||
|
## 🟡 Bugs Resueltos
|
||||||
|
|
||||||
# VERSIÓN 2.8.2
|
# VERSIÓN 2.8.2
|
||||||
|
|
||||||
## 🟡 Bugs Resueltos
|
## 🟡 Bugs Resueltos
|
||||||
|
|||||||
3473
data/plugin.log
3473
data/plugin.log
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
|||||||
"displayName": "SIIP - Procesador de Pagos en línea con Stripe, Oxxo y Transferencia, Sincronizador de CallBell y Envío de Notificaciones y comprobantes vía WhatsApp",
|
"displayName": "SIIP - Procesador de Pagos en línea con Stripe, Oxxo y Transferencia, Sincronizador de CallBell y Envío de Notificaciones y comprobantes vía WhatsApp",
|
||||||
"description": "Este plugin sincroniza los clientes del sistema UISP CRM con los contactos de WhatsApp en CallBell, además procesa pagos de Stripe como las trasferencias bancarias y genera referencias de pago vía OXXO, además envía comprobantes de pago en formato imagen PNG o texto vía Whatsapp a los clientes",
|
"description": "Este plugin sincroniza los clientes del sistema UISP CRM con los contactos de WhatsApp en CallBell, además procesa pagos de Stripe como las trasferencias bancarias y genera referencias de pago vía OXXO, además envía comprobantes de pago en formato imagen PNG o texto vía Whatsapp a los clientes",
|
||||||
"url": "https://siip.mx/",
|
"url": "https://siip.mx/",
|
||||||
"version": "2.8.2",
|
"version": "2.8.5",
|
||||||
"unmsVersionCompliancy": {
|
"unmsVersionCompliancy": {
|
||||||
"min": "2.1.0",
|
"min": "2.1.0",
|
||||||
"max": null
|
"max": null
|
||||||
|
|||||||
@ -256,47 +256,48 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$hour = $date->format('h');
|
$hour = $date->format('h');
|
||||||
$clockEmoji = "🕐"; // Emoji por defecto
|
$clockEmoji = "🕐"; // Emoji por defecto
|
||||||
// Determinar el emoji del reloj según la hora
|
// Determinar el emoji del reloj según la hora
|
||||||
switch ($hour) {
|
// switch ($hour) {
|
||||||
case '01':
|
// case '01':
|
||||||
$clockEmoji = "🕐";
|
// $clockEmoji = "🕐";
|
||||||
break;
|
// break;
|
||||||
case '02':
|
// case '02':
|
||||||
$clockEmoji = "🕑";
|
// $clockEmoji = "🕑";
|
||||||
break;
|
// break;
|
||||||
case '03':
|
// case '03':
|
||||||
$clockEmoji = "🕒";
|
// $clockEmoji = "🕒";
|
||||||
break;
|
// break;
|
||||||
case '04':
|
// case '04':
|
||||||
$clockEmoji = "🕓";
|
// $clockEmoji = "🕓";
|
||||||
break;
|
// break;
|
||||||
case '05':
|
// case '05':
|
||||||
$clockEmoji = "🕔";
|
// $clockEmoji = "🕔";
|
||||||
break;
|
// break;
|
||||||
case '06':
|
// case '06':
|
||||||
$clockEmoji = "🕕";
|
// $clockEmoji = "🕕";
|
||||||
break;
|
// break;
|
||||||
case '07':
|
// case '07':
|
||||||
$clockEmoji = "🕖";
|
// $clockEmoji = "🕖";
|
||||||
break;
|
// break;
|
||||||
case '08':
|
// case '08':
|
||||||
$clockEmoji = "🕗";
|
// $clockEmoji = "🕗";
|
||||||
break;
|
// break;
|
||||||
case '09':
|
// case '09':
|
||||||
$clockEmoji = "🕘";
|
// $clockEmoji = "🕘";
|
||||||
break;
|
// break;
|
||||||
case '10':
|
// case '10':
|
||||||
$clockEmoji = "🕙";
|
// $clockEmoji = "🕙";
|
||||||
break;
|
// break;
|
||||||
case '11':
|
// case '11':
|
||||||
$clockEmoji = "🕚";
|
// $clockEmoji = "🕚";
|
||||||
break;
|
// break;
|
||||||
case '12':
|
// case '12':
|
||||||
$clockEmoji = "🕛";
|
// $clockEmoji = "🕛";
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Formatear la fecha al formato deseado: día/mes/año a las hora:minuto am/pm aproximadamente
|
// Formatear la fecha al formato deseado: día/mes/año a las hora:minuto am/pm aproximadamente
|
||||||
$formattedDate = "*" . $date->format('d/m/Y') . "* a las $clockEmoji *" . $date->format('h:i A') . "* aproximadamente";
|
// $formattedDate = "*" . $date->format('d/m/Y') . "* a las $clockEmoji *" . $date->format('h:i A') . "* aproximadamente";
|
||||||
|
$formattedDate = sprintf("*%s*", $date->format('d/m/Y'));
|
||||||
|
|
||||||
|
|
||||||
// $this->logger->debug('Valor de $formattedDate en verifyJobActionToDo: ' . $formattedDate . PHP_EOL);
|
// $this->logger->debug('Valor de $formattedDate en verifyJobActionToDo: ' . $formattedDate . PHP_EOL);
|
||||||
@ -586,7 +587,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
// Construir el array asociativo con los datos de la notificación para el instalador nuevo
|
// Construir el array asociativo con los datos de la notificación para el instalador nuevo
|
||||||
$jsonInstallerJobNotificationData = [
|
$jsonInstallerJobNotificationData = [
|
||||||
"installerName" => $installerFullName,
|
"installerName" => $installerFullName,
|
||||||
"clientFullName" => sprintf("[%s] %s", $arrayClientCRM['id'], $clientFullName),
|
"clientFullName" => sprintf("%s [ID:%s]", $clientFullName, $arrayClientCRM['id']),
|
||||||
"jobId" => $jobId,
|
"jobId" => $jobId,
|
||||||
"clientAddress" => $safeAddress,
|
"clientAddress" => $safeAddress,
|
||||||
"clientWhatsApp" => $resultadoFinalNumerosCliente,
|
"clientWhatsApp" => $resultadoFinalNumerosCliente,
|
||||||
@ -609,7 +610,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$jsonInstallerJobNotificationData,
|
$jsonInstallerJobNotificationData,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
$this->getVaultCredentials($arrayClientCRM['id'])
|
$this->getVaultCredentialsByClientId($arrayClientCRM['id'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
@ -624,7 +625,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
// Construir el array asociativo con los datos de la notificación
|
// Construir el array asociativo con los datos de la notificación
|
||||||
$jsonInstallerJobNotificationData = [
|
$jsonInstallerJobNotificationData = [
|
||||||
"installerName" => $installerFullName,
|
"installerName" => $installerFullName,
|
||||||
"clientFullName" => sprintf("[%s] %s", $arrayClientCRM['id'], $clientFullName),
|
"clientFullName" => sprintf("%s [ID:%s]", $clientFullName, $arrayClientCRM['id']),
|
||||||
"jobId" => $jobId,
|
"jobId" => $jobId,
|
||||||
"clientAddress" => $safeAddress,
|
"clientAddress" => $safeAddress,
|
||||||
"clientWhatsApp" => $resultadoFinalNumerosCliente,
|
"clientWhatsApp" => $resultadoFinalNumerosCliente,
|
||||||
@ -646,7 +647,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$jsonInstallerJobNotificationData,
|
$jsonInstallerJobNotificationData,
|
||||||
$reprogramming,
|
$reprogramming,
|
||||||
$changeInstaller,
|
$changeInstaller,
|
||||||
$this->getVaultCredentials($arrayClientCRM['id'])
|
$this->getVaultCredentialsByClientId($arrayClientCRM['id'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
@ -1175,7 +1176,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
}
|
}
|
||||||
function getVaultCredentials($dataToSearch): string
|
function getVaultCredentials($dataToSearch): string
|
||||||
{
|
{
|
||||||
$logger = \Ubnt\UcrmPluginSdk\Service\PluginLogManager::create();
|
|
||||||
$configManager = \Ubnt\UcrmPluginSdk\Service\PluginConfigManager::create();
|
$configManager = \Ubnt\UcrmPluginSdk\Service\PluginConfigManager::create();
|
||||||
$config = $configManager->loadConfig();
|
$config = $configManager->loadConfig();
|
||||||
$ucrmBaseUri = $config['ipserver'];
|
$ucrmBaseUri = $config['ipserver'];
|
||||||
@ -1202,9 +1203,15 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
|
|
||||||
//validar si dataToSearch es una dirección IP o una dirección MAC
|
//validar si dataToSearch es una dirección IP o una dirección MAC
|
||||||
if (filter_var($dataToSearch, FILTER_VALIDATE_IP)) {
|
if (filter_var($dataToSearch, FILTER_VALIDATE_IP)) {
|
||||||
|
|
||||||
// La variable es una dirección IP válida
|
// La variable es una dirección IP válida
|
||||||
// $logger->appendLog('Consulta por dirección IP: ' . $dataToSearch);
|
//$logger->appendLog('Consulta por dirección IP: ' . $dataToSearch);
|
||||||
print ('Consulta por dirección IP: ' . $dataToSearch . PHP_EOL);
|
$this->logger->info('Consulta por dirección IP: ' . $dataToSearch . PHP_EOL);
|
||||||
|
|
||||||
|
|
||||||
|
if ($ucrmBaseUri === '172.16.5.134') { //opción solo para el servidor de pruebas
|
||||||
|
return 'gYAIEK:Be}SK*01z5+/V';
|
||||||
|
}
|
||||||
|
|
||||||
$IpAddressClientId = filter_var($dataToSearch, FILTER_VALIDATE_IP);
|
$IpAddressClientId = filter_var($dataToSearch, FILTER_VALIDATE_IP);
|
||||||
|
|
||||||
@ -1225,15 +1232,14 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$siteId = $datasSitesByIP[0]['id'];
|
$siteId = $datasSitesByIP[0]['id'];
|
||||||
// print_r('ID DEL SITIO: ' . $siteId . PHP_EOL); // ID del sitio
|
// print_r('ID DEL SITIO: ' . $siteId . PHP_EOL); // ID del sitio
|
||||||
} else {
|
} else {
|
||||||
// $logger->appendLog('No se encontró ningún sitio para la IP proporcionada: ' . $dataToSearch);
|
|
||||||
print_r('No se encontró ningún sitio para la IP proporcionada: ' . $dataToSearch . PHP_EOL);
|
$this->logger->error('No se encontró ningún sitio para la IP proporcionada: ' . $dataToSearch . PHP_EOL);
|
||||||
return 'Error: No se encontró ningún sitio para la IP proporcionada: ' . $dataToSearch; // Return early if no site is found
|
return 'Error: No se encontró ningún sitio para la IP proporcionada: ' . $dataToSearch; // Return early if no site is found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//echo "Error en la solicitud. Código de estado HTTP: " . $responseSitesByIP->getStatusCode() . PHP_EOL;
|
|
||||||
// $logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responseSitesByIP->getStatusCode());
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseSitesByIP->getStatusCode() . PHP_EOL);
|
||||||
print_r('Error en la solicitud. Código de estado HTTP: ' . $responseSitesByIP->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responseSitesByIP->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responseSitesByIP->getStatusCode(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1257,23 +1263,18 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
break; // Salir del ciclo si se encuentra la IP
|
break; // Salir del ciclo si se encuentra la IP
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// $logger->appendLog('No se encontró la IP del dispositivo en la respuesta de la API.');
|
$this->logger->error('No se encontró la IP del dispositivo en la respuesta de la API.' . PHP_EOL);
|
||||||
print_r('No se encontró la IP del dispositivo en la respuesta de la API.' . PHP_EOL);
|
|
||||||
return 'Error: No se encontró la IP del dispositivo en la respuesta de la API.'; // Return early if the IP is not found
|
return 'Error: No se encontró la IP del dispositivo en la respuesta de la API.'; // Return early if the IP is not found
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($deviceID == null) {
|
if ($deviceID == null) {
|
||||||
//echo "No se encontró el dispositivo con la IP proporcionada." . PHP_EOL;
|
$this->logger->error('No se encontró el dispositivo con la IP proporcionada: ' . $IpAddressClientId . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró el dispositivo con la IP proporcionada: ' . $IpAddressClientId);
|
|
||||||
print_r('No se encontró el dispositivo con la IP proporcionada: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el dispositivo con la IP proporcionada: ' . $IpAddressClientId; // Return early if no device is found
|
return 'Error: No se encontró el dispositivo con la IP proporcionada: ' . $IpAddressClientId; // Return early if no device is found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $devicesBySiteId->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $devicesBySiteId->getStatusCode() . PHP_EOL);
|
||||||
// $logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $devicesBySiteId->getStatusCode());
|
|
||||||
print_r('Error en la solicitud. Código de estado HTTP: ' . $devicesBySiteId->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $devicesBySiteId->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $devicesBySiteId->getStatusCode(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1291,17 +1292,13 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
if (isset($dataPasswordVault['credentials']['password'])) {
|
if (isset($dataPasswordVault['credentials']['password'])) {
|
||||||
$dataPasswordVault = $dataPasswordVault['credentials']['password'];
|
$dataPasswordVault = $dataPasswordVault['credentials']['password'];
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontró la contraseña en la respuesta de la API." . PHP_EOL;
|
$this->logger->error('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.');
|
|
||||||
print_r('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
|
||||||
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
||||||
}
|
}
|
||||||
return $dataPasswordVault;
|
return $dataPasswordVault;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responsePasswordVault->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
||||||
// $logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode());
|
|
||||||
print_r('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1311,19 +1308,14 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$response = $requestException->getResponse();
|
$response = $requestException->getResponse();
|
||||||
$statusCode = $response->getStatusCode();
|
$statusCode = $response->getStatusCode();
|
||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
// echo "Error: {$statusCode} - {$reason}" . PHP_EOL;
|
|
||||||
// echo $response->getBody();
|
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
// echo "No se encontró el cliente con la dirección IP proporcionada." . PHP_EOL;
|
$this->logger->error('No se encontró el cliente con la dirección IP proporcionada: ' . $IpAddressClientId . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró el cliente con la dirección IP proporcionada: ' . $IpAddressClientId);
|
|
||||||
print_r('No se encontró el cliente con la dirección IP proporcionada: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el cliente con la dirección IP proporcionada: ' . $IpAddressClientId; // Return early if the client is not found
|
return 'Error: No se encontró el cliente con la dirección IP proporcionada: ' . $IpAddressClientId; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error al realizar la solicitud: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
// $logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1331,8 +1323,12 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
|
|
||||||
} else if (preg_match('/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/', $dataToSearch)) {
|
} else if (preg_match('/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/', $dataToSearch)) {
|
||||||
// La variable es una dirección MAC válida
|
// La variable es una dirección MAC válida
|
||||||
// $logger->appendLog('Consulta por dirección MAC: ' . $dataToSearch);
|
|
||||||
print ('Consulta por dirección MAC: ' . $dataToSearch . PHP_EOL);
|
$this->logger->info('Consulta por dirección MAC: ' . $dataToSearch . PHP_EOL);
|
||||||
|
|
||||||
|
if ($ucrmBaseUri === '172.16.5.134') { //opción solo para el servidor de pruebas
|
||||||
|
return 'gYAIEK:Be}SK*01z5+/V';
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// //para mandarla al endpoint de dispositivos por MAC se necesita convertir la cadena de la direccion mac en un formato como el siguiente ejemplo: para la dirección mac 60:22:32:c8:b2:c3 quedaría como 60%3A22%3A32%3Ac8%3Ab2%3Ac3
|
// //para mandarla al endpoint de dispositivos por MAC se necesita convertir la cadena de la direccion mac en un formato como el siguiente ejemplo: para la dirección mac 60:22:32:c8:b2:c3 quedaría como 60%3A22%3A32%3Ac8%3Ab2%3Ac3
|
||||||
@ -1357,9 +1353,7 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$deviceId = $dataDeviceByMAC['id'];
|
$deviceId = $dataDeviceByMAC['id'];
|
||||||
// print_r('ID DEL DISPOSITIVO: ' . $deviceId . PHP_EOL); // ID del dispositivo
|
// print_r('ID DEL DISPOSITIVO: ' . $deviceId . PHP_EOL); // ID del dispositivo
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontró el dispositivo con la dirección MAC proporcionada." . PHP_EOL;
|
$this->logger->error('No se encontró el dispositivo con la dirección MAC proporcionada: ' . $dataToSearch . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró el dispositivo con la dirección MAC proporcionada: ' . $dataToSearch);
|
|
||||||
print_r('No se encontró el dispositivo con la dirección MAC proporcionada: ' . $dataToSearch . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el dispositivo con la dirección MAC proporcionada: ' . $dataToSearch; // Return early if no device is found
|
return 'Error: No se encontró el dispositivo con la dirección MAC proporcionada: ' . $dataToSearch; // Return early if no device is found
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1373,23 +1367,17 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
|
|
||||||
if ($responsePasswordVault->getStatusCode() === 200) {
|
if ($responsePasswordVault->getStatusCode() === 200) {
|
||||||
$dataPasswordVault = json_decode((string) $responsePasswordVault->getBody(), true);
|
$dataPasswordVault = json_decode((string) $responsePasswordVault->getBody(), true);
|
||||||
// $jsonPasswordVault = json_encode($dataPasswordVault, JSON_PRETTY_PRINT);
|
|
||||||
//print_r($jsonPasswordVault . PHP_EOL); //Credenciales del dispositivo
|
|
||||||
|
|
||||||
if (isset($dataPasswordVault['credentials']['password'])) {
|
if (isset($dataPasswordVault['credentials']['password'])) {
|
||||||
$dataPasswordVault = $dataPasswordVault['credentials']['password'];
|
$dataPasswordVault = $dataPasswordVault['credentials']['password'];
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontró la contraseña en la respuesta de la API." . PHP_EOL;
|
$this->logger->error('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.');
|
|
||||||
print_r('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
|
||||||
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
||||||
}
|
}
|
||||||
return $dataPasswordVault;
|
return $dataPasswordVault;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responsePasswordVault->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
||||||
// $logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode());
|
|
||||||
print_r('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1399,19 +1387,15 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$response = $requestException->getResponse();
|
$response = $requestException->getResponse();
|
||||||
$statusCode = $response->getStatusCode();
|
$statusCode = $response->getStatusCode();
|
||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
// echo "Error: {$statusCode} - {$reason}" . PHP_EOL;
|
|
||||||
// echo $response->getBody();
|
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
// echo "No se encontró el cliente con la dirección MAC proporcionada." . PHP_EOL;
|
$this->logger->error('No se encontró ninguna antena de cliente o dispositivo en la red con la dirección MAC proporcionada: ' . $dataToSearch . PHP_EOL);
|
||||||
// $logger->appendLog('No se encontró ninguna antena de cliente o dispositivo en la red con la dirección MAC proporcionada: ' . $dataToSearch);
|
|
||||||
print_r('No se encontró ninguna antena de cliente o dispositivo en la red con la dirección MAC proporcionada: ' . $dataToSearch . PHP_EOL);
|
|
||||||
return 'Error: No se encontró ninguna antena de cliente o dispositivo en la red con la dirección MAC proporcionada: ' . $dataToSearch; // Return early if the client is not found
|
return 'Error: No se encontró ninguna antena de cliente o dispositivo en la red con la dirección MAC proporcionada: ' . $dataToSearch; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
|
$this->logger->error('Error: ' . $reason . PHP_EOL);
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error al realizar la solicitud: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
// $logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1421,6 +1405,8 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
// La variable no es una dirección IP válida, se asume que es un ID
|
// La variable no es una dirección IP válida, se asume que es un ID
|
||||||
$IpAddressClientId = filter_var($dataToSearch, FILTER_SANITIZE_NUMBER_INT);
|
$IpAddressClientId = filter_var($dataToSearch, FILTER_SANITIZE_NUMBER_INT);
|
||||||
//print ('Consulta por ID: ' . $dataToSearch . PHP_EOL);
|
//print ('Consulta por ID: ' . $dataToSearch . PHP_EOL);
|
||||||
|
$this->logger->info('Consulta por ID: ' . $dataToSearch . PHP_EOL);
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//Obtener id del sitio por medio del servicio
|
//Obtener id del sitio por medio del servicio
|
||||||
@ -1439,17 +1425,13 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
//si el statusCode es 404 significa que no se encontró el cliente
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
echo "No se encontró el cliente con el ID proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId);
|
|
||||||
// print_r('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
return 'Error: No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
$logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
// print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1458,21 +1440,16 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
if ($responseServices->getStatusCode() === 200) {
|
if ($responseServices->getStatusCode() === 200) {
|
||||||
|
|
||||||
$dataServices = json_decode($responseServices->getBody()->getContents(), true);
|
$dataServices = json_decode($responseServices->getBody()->getContents(), true);
|
||||||
// $jsonServices = json_encode($dataServices, JSON_PRETTY_PRINT);
|
|
||||||
// print_r($jsonServices . PHP_EOL);
|
|
||||||
if (isset($dataServices[0])) {
|
if (isset($dataServices[0])) {
|
||||||
$unmsSiteID = $dataServices[0]['unmsClientSiteId']; // Example: 9c6798f3-0254-4e5b-bc3b-9da82fe16e46
|
$unmsSiteID = $dataServices[0]['unmsClientSiteId']; // Example: 9c6798f3-0254-4e5b-bc3b-9da82fe16e46
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontraron servicios para el cliente proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontraron servicios para el cliente proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontraron servicios para el cliente proporcionado: ' . $IpAddressClientId);
|
|
||||||
// print_r('No se encontraron servicios para el cliente proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return "Error: No se encontraron servicios para el cliente proporcionado: " . $IpAddressClientId; // Return early if no services are found
|
return "Error: No se encontraron servicios para el cliente proporcionado: " . $IpAddressClientId; // Return early if no services are found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responseServices->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseServices->getStatusCode() . PHP_EOL);
|
||||||
$logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responseServices->getStatusCode());
|
|
||||||
// print_r('Error en la solicitud. Código de estado HTTP: ' . $responseServices->getStatusCode() . PHP_EOL);
|
|
||||||
return "Error: En la solicitud. Código de estado HTTP: " . $responseServices->getStatusCode();
|
return "Error: En la solicitud. Código de estado HTTP: " . $responseServices->getStatusCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1490,17 +1467,14 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
//si el statusCode es 404 significa que no se encontró el cliente
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
// echo "No se encontró el cliente con el ID proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontró el devicie con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId);
|
|
||||||
// print_r('No se encontró el devicie con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el devicie con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
return 'Error: No se encontró el devicie con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
|
$this->logger->error('Error: ' . $reason . PHP_EOL);
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
$logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
// print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1519,23 +1493,17 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$idClientDevice = $dataDevicesBySite[0]['identification']['id'];
|
$idClientDevice = $dataDevicesBySite[0]['identification']['id'];
|
||||||
$deviceID = $dataDevicesBySite[0]['attributes']['apDevice']['id'];
|
$deviceID = $dataDevicesBySite[0]['attributes']['apDevice']['id'];
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontró la clave 'identification' o 'apDevice' en la respuesta." . PHP_EOL;
|
$this->logger->error('No se encontró el dispositivo con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró la clave \'identification\' o \'apDevice\' en la respuesta.');
|
|
||||||
// print_r('Este cliente es un repetidor.' . PHP_EOL);
|
|
||||||
return "Este cliente es un repetidor."; // Return early if the key is not found
|
return "Este cliente es un repetidor."; // Return early if the key is not found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontraron dispositivos para el sitio proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontraron dispositivos para el sitio proporcionado: ' . $unmsSiteID . PHP_EOL);
|
||||||
$logger->appendLog('No se encontraron dispositivos para el sitio proporcionado: ' . $unmsSiteID);
|
|
||||||
// print_r('No se encontraron dispositivos para el sitio proporcionado: ' . $unmsSiteID . PHP_EOL);
|
|
||||||
return "Error: No se encontraron dispositivos para el sitio proporcionado."; // Return early if no devices are found
|
return "Error: No se encontraron dispositivos para el sitio proporcionado."; // Return early if no devices are found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responseDevicesBySite->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
||||||
$logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode());
|
|
||||||
// print_r('Error en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
|
||||||
return "Error: Falla en la solicitud. Código de estado HTTP: " . $responseDevicesBySite->getStatusCode();
|
return "Error: Falla en la solicitud. Código de estado HTTP: " . $responseDevicesBySite->getStatusCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1553,17 +1521,13 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
//si el statusCode es 404 significa que no se encontró el cliente
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
// echo "No se encontró el cliente con el ID proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontró el device con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId);
|
|
||||||
// print_r('No se encontró el device con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el device con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
return 'Error: No se encontró el device con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
$logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
// print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1590,17 +1554,14 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$reason = $response->getReasonPhrase();
|
$reason = $response->getReasonPhrase();
|
||||||
//si el statusCode es 404 significa que no se encontró el cliente
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
if ($statusCode == 404) {
|
if ($statusCode == 404) {
|
||||||
// echo "No se encontró el cliente con el ID proporcionado." . PHP_EOL;
|
$this->logger->error('No se encontró el device con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró el cliente con el ID proporcionado: ' . $IpAddressClientId);
|
|
||||||
// print_r('No se encontró el device con el ID proporcionado: ' . $IpAddressClientId . PHP_EOL);
|
|
||||||
return 'Error: No se encontró el device con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
return 'Error: No se encontró el device con el ID proporcionado: ' . $IpAddressClientId; // Return early if the client is not found
|
||||||
}
|
}
|
||||||
|
$this->logger->error('Error: ' . $reason . PHP_EOL);
|
||||||
return 'Error: ' . $reason; // Return early if the request fails
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error: " . $requestException->getMessage() . PHP_EOL;
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
$logger->appendLog('Error: ' . $requestException->getMessage());
|
|
||||||
// print_r('Error: ' . $requestException->getMessage() . PHP_EOL);
|
|
||||||
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1612,28 +1573,237 @@ abstract class AbstractMessageNotifierFacade
|
|||||||
$passwordVault = $dataPasswordVault['credentials']['password'];
|
$passwordVault = $dataPasswordVault['credentials']['password'];
|
||||||
return $passwordVault;
|
return $passwordVault;
|
||||||
} else {
|
} else {
|
||||||
// echo "No se encontró la contraseña en la respuesta de la API." . PHP_EOL;
|
$this->logger->error('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
||||||
$logger->appendLog('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.');
|
|
||||||
// print_r('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
|
||||||
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responsePasswordVault->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
||||||
$logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode());
|
|
||||||
// print_r('Error en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// echo "Error en la solicitud. Código de estado HTTP: " . $responseDevicesBySite->getStatusCode() . PHP_EOL;
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
||||||
$logger->appendLog('Error en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode());
|
|
||||||
// print_r('Error en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
|
||||||
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode(); // Return early if the request fails
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode(); // Return early if the request fails
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
function getVaultCredentialsByClientId($clientId): string
|
||||||
|
{
|
||||||
|
|
||||||
|
$configManager = \Ubnt\UcrmPluginSdk\Service\PluginConfigManager::create();
|
||||||
|
$config = $configManager->loadConfig();
|
||||||
|
$ucrmBaseUri = $config['ipserver'];
|
||||||
|
$authToken = $config['apitoken'];
|
||||||
|
|
||||||
|
if ($ucrmBaseUri === '172.16.5.134') { //opción solo para el servidor de pruebas
|
||||||
|
return 'gYAIEK:Be}SK*01z5+/V';
|
||||||
|
}
|
||||||
|
|
||||||
|
$unmsBaseUri = 'https://' . $ucrmBaseUri . '/nms/api/v2.1/';
|
||||||
|
$ucrmBaseUri = 'https://' . $ucrmBaseUri . '/crm/api/v1.0/';
|
||||||
|
//$authToken = '7adc9198-50b1-41d0-9bfa-d4946902ed89';
|
||||||
|
|
||||||
|
// Crear una instancia del cliente Guzzle
|
||||||
|
$clientUnms = new Client([
|
||||||
|
'base_uri' => $unmsBaseUri,
|
||||||
|
'verify' => false, // Deshabilitar la verificación del certificado SSL
|
||||||
|
]);
|
||||||
|
|
||||||
|
$clientUcrm = new Client([
|
||||||
|
'base_uri' => $ucrmBaseUri,
|
||||||
|
'verify' => false, // Deshabilitar la verificación del certificado SSL
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
$this->logger->info('Consulta por ID: ' . $clientId . PHP_EOL);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
//Obtener id del sitio por medio del servicio
|
||||||
|
$responseServices = $clientUcrm->get('clients/services?clientId=' . $clientId, [
|
||||||
|
'headers' => [
|
||||||
|
'X-Auth-Token' => $authToken,
|
||||||
|
'Content-Type: application/json',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
} catch (RequestException $requestException) {
|
||||||
|
// Manejar errores de la solicitud
|
||||||
|
if ($requestException->hasResponse()) {
|
||||||
|
$response = $requestException->getResponse();
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
$reason = $response->getReasonPhrase();
|
||||||
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
|
if ($statusCode == 404) {
|
||||||
|
$this->logger->error('No se encontró el cliente con el ID proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return 'Error: No se encontró el cliente con el ID proporcionado: ' . $clientId; // Return early if the client is not found
|
||||||
|
}
|
||||||
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($responseServices->getStatusCode() === 200) {
|
||||||
|
|
||||||
|
$dataServices = json_decode($responseServices->getBody()->getContents(), true);
|
||||||
|
|
||||||
|
if (isset($dataServices[0])) {
|
||||||
|
$unmsSiteID = $dataServices[0]['unmsClientSiteId']; // Example: 9c6798f3-0254-4e5b-bc3b-9da82fe16e46
|
||||||
|
} else {
|
||||||
|
$this->logger->error('No se encontraron servicios para el cliente proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return "Error: No se encontraron servicios para el cliente proporcionado: " . $clientId; // Return early if no services are found
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseServices->getStatusCode() . PHP_EOL);
|
||||||
|
return "Error: En la solicitud. Código de estado HTTP: " . $responseServices->getStatusCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$responseDevicesBySite = $clientUnms->request('GET', 'devices?siteId=' . $unmsSiteID, [
|
||||||
|
'headers' => [
|
||||||
|
'X-Auth-Token' => $authToken,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
} catch (RequestException $requestException) {
|
||||||
|
// Manejar errores de la solicitud
|
||||||
|
if ($requestException->hasResponse()) {
|
||||||
|
$response = $requestException->getResponse();
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
$reason = $response->getReasonPhrase();
|
||||||
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
|
if ($statusCode == 404) {
|
||||||
|
$this->logger->error('No se encontró el devicie con el ID proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return 'Error: No se encontró el devicie con el ID proporcionado: ' . $clientId; // Return early if the client is not found
|
||||||
|
}
|
||||||
|
$this->logger->error('Error: ' . $reason . PHP_EOL);
|
||||||
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($responseDevicesBySite->getStatusCode() === 200) {
|
||||||
|
|
||||||
|
$dataDevicesBySite = json_decode($responseDevicesBySite->getBody()->getContents(), true);
|
||||||
|
$jsonDevicesBySite = json_encode($dataDevicesBySite, JSON_PRETTY_PRINT);
|
||||||
|
//print_r($jsonDevicesBySite . PHP_EOL); //Devices por ID del sitio
|
||||||
|
|
||||||
|
//id del device al que está conectado el cliente
|
||||||
|
if (isset($dataDevicesBySite[0])) {
|
||||||
|
//verificar con iiset si existe la clave 'identification' y 'apDevice' en el primer elemento del array
|
||||||
|
if (isset($dataDevicesBySite[0]['identification']) && isset($dataDevicesBySite[0]['attributes']['apDevice'])) {
|
||||||
|
$idClientDevice = $dataDevicesBySite[0]['identification']['id'];
|
||||||
|
$deviceID = $dataDevicesBySite[0]['attributes']['apDevice']['id'];
|
||||||
|
} else {
|
||||||
|
$this->logger->error('No se encontró el dispositivo con el ID proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return "Este cliente es un repetidor."; // Return early if the key is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('No se encontraron dispositivos para el sitio proporcionado: ' . $unmsSiteID . PHP_EOL);
|
||||||
|
return "Error: No se encontraron dispositivos para el sitio proporcionado."; // Return early if no devices are found
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
||||||
|
return "Error: Falla en la solicitud. Código de estado HTTP: " . $responseDevicesBySite->getStatusCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$responseDevicesBySite = $clientUnms->request('GET', 'devices/' . $deviceID, [
|
||||||
|
'headers' => [
|
||||||
|
'X-Auth-Token' => $authToken,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
} catch (RequestException $requestException) {
|
||||||
|
// Manejar errores de la solicitud
|
||||||
|
if ($requestException->hasResponse()) {
|
||||||
|
$response = $requestException->getResponse();
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
$reason = $response->getReasonPhrase();
|
||||||
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
|
if ($statusCode == 404) {
|
||||||
|
$this->logger->error('No se encontró el device con el ID proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return 'Error: No se encontró el device con el ID proporcionado: ' . $clientId; // Return early if the client is not found
|
||||||
|
}
|
||||||
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($responseDevicesBySite->getStatusCode() === 200) {
|
||||||
|
|
||||||
|
$dataDevices = json_decode($responseDevicesBySite->getBody()->getContents(), true);
|
||||||
|
$jsonDevices = json_encode($dataDevices, JSON_PRETTY_PRINT);
|
||||||
|
//print_r($jsonDevices . PHP_EOL);
|
||||||
|
|
||||||
|
try {
|
||||||
|
//print_r('ID del device al que está conectado el cliente: ' . $idDevice . PHP_EOL);
|
||||||
|
$responsePasswordVault = $clientUnms->request('GET', 'vault/' . $idClientDevice . '/credentials', [
|
||||||
|
'headers' => [
|
||||||
|
'X-Auth-Token' => $authToken,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
} catch (RequestException $requestException) {
|
||||||
|
// Manejar errores de la solicitud
|
||||||
|
if ($requestException->hasResponse()) {
|
||||||
|
$response = $requestException->getResponse();
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
$reason = $response->getReasonPhrase();
|
||||||
|
//si el statusCode es 404 significa que no se encontró el cliente
|
||||||
|
if ($statusCode == 404) {
|
||||||
|
$this->logger->error('No se encontró el device con el ID proporcionado: ' . $clientId . PHP_EOL);
|
||||||
|
return 'Error: No se encontró el device con el ID proporcionado: ' . $clientId; // Return early if the client is not found
|
||||||
|
}
|
||||||
|
$this->logger->error('Error: ' . $reason . PHP_EOL);
|
||||||
|
return 'Error: ' . $reason; // Return early if the request fails
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Error: ' . $requestException->getMessage() . PHP_EOL);
|
||||||
|
return 'Error: ' . $requestException->getMessage(); // Return early if the request fails
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($responsePasswordVault->getStatusCode() === 200) {
|
||||||
|
$dataPasswordVault = json_decode($responsePasswordVault->getBody()->getContents(), true);
|
||||||
|
$jsonPasswordVault = json_encode($dataPasswordVault, JSON_PRETTY_PRINT);
|
||||||
|
if (isset($dataPasswordVault['credentials']['password'])) {
|
||||||
|
$passwordVault = $dataPasswordVault['credentials']['password'];
|
||||||
|
return $passwordVault;
|
||||||
|
} else {
|
||||||
|
$this->logger->error('No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida.' . PHP_EOL);
|
||||||
|
return "Error: No se encontró una contraseña en la bóveda para la antena de este cliente, es altamente probable que conserve una contraseña conocida."; // Return early if the password is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode() . PHP_EOL);
|
||||||
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responsePasswordVault->getStatusCode(); // Return early if the request fails
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->logger->error('Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode() . PHP_EOL);
|
||||||
|
return 'Error: Falla en la solicitud. Código de estado HTTP: ' . $responseDevicesBySite->getStatusCode(); // Return early if the request fails
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -247,7 +247,7 @@ class ClientCallBellAPI
|
|||||||
if (!$reprogramming && $changeInstaller) {
|
if (!$reprogramming && $changeInstaller) {
|
||||||
$campo2 = $jobInstallerNotificationData['subjectOfChange'];
|
$campo2 = $jobInstallerNotificationData['subjectOfChange'];
|
||||||
$campo3 = sprintf("#️⃣%s", $jobInstallerNotificationData['jobId']);
|
$campo3 = sprintf("#️⃣%s", $jobInstallerNotificationData['jobId']);
|
||||||
$campo4 = '👤 *Cliente:* ' . $jobInstallerNotificationData['clientFullName'];
|
$campo4 = sprintf('*👤%s* ', $jobInstallerNotificationData['clientFullName']);
|
||||||
$campo5 = $jobInstallerNotificationData['additionalChangeData'];
|
$campo5 = $jobInstallerNotificationData['additionalChangeData'];
|
||||||
} else {
|
} else {
|
||||||
$campo2 = sprintf("#️⃣%s", $jobInstallerNotificationData['jobId']);
|
$campo2 = sprintf("#️⃣%s", $jobInstallerNotificationData['jobId']);
|
||||||
@ -255,9 +255,9 @@ class ClientCallBellAPI
|
|||||||
// $campo4 = $jobInstallerNotificationData['clientAddress'];
|
// $campo4 = $jobInstallerNotificationData['clientAddress'];
|
||||||
$campo4 = '☎️ ' . $jobInstallerNotificationData['clientWhatsApp'];
|
$campo4 = '☎️ ' . $jobInstallerNotificationData['clientWhatsApp'];
|
||||||
$campo5 = '🗓️ ' . $jobInstallerNotificationData['date'];
|
$campo5 = '🗓️ ' . $jobInstallerNotificationData['date'];
|
||||||
$campo6 = '🛠️ ' . $jobInstallerNotificationData['jobDescription'];
|
// $campo6 = '🛠️ ' . $jobInstallerNotificationData['jobDescription'];
|
||||||
$campo7 = '📌 ' . $jobInstallerNotificationData['gmapsLocation'];
|
// $campo7 = '📌 ' . $jobInstallerNotificationData['gmapsLocation'];
|
||||||
$campo8 = '🔐 ' . $passwordAntenaCliente;
|
// $campo8 = '🔐 ' . $passwordAntenaCliente;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($reprogramming && !$changeInstaller) {
|
if ($reprogramming && !$changeInstaller) {
|
||||||
@ -276,7 +276,7 @@ class ClientCallBellAPI
|
|||||||
$curl_string = "{\n \"to\": \"$installerWhatsAppNumber\",\n \"from\": \"whatsapp\",\n \"type\": \"text\",\n \"content\": {\n \"text\": \"S/M\"\n },\n \"template_values\": [\"$campo1_combinado\", \"$campo2\", \"$campo3\", \"$campo4\"],\n \"template_uuid\": \"88eeb6420a214fd8870dd28d741021c4\",\n \"optin_contact\": true\n }";
|
$curl_string = "{\n \"to\": \"$installerWhatsAppNumber\",\n \"from\": \"whatsapp\",\n \"type\": \"text\",\n \"content\": {\n \"text\": \"S/M\"\n },\n \"template_values\": [\"$campo1_combinado\", \"$campo2\", \"$campo3\", \"$campo4\"],\n \"template_uuid\": \"88eeb6420a214fd8870dd28d741021c4\",\n \"optin_contact\": true\n }";
|
||||||
} else if (!$reprogramming && $changeInstaller) {
|
} else if (!$reprogramming && $changeInstaller) {
|
||||||
//Enviar notificación de cambio de instalador
|
//Enviar notificación de cambio de instalador
|
||||||
$log->appendLog("Enviando notificación de cambio de instalador al instalador anterior, valor de reprogramming $reprogramming y valor de changeInstaller $changeInstaller " . PHP_EOL);
|
$log->appendLog("Enviando notificación de cambio de instalador al instalador anterior (desasignación), valor de reprogramming $reprogramming y valor de changeInstaller $changeInstaller " . PHP_EOL);
|
||||||
$curl_string = "{\n \"to\": \"$installerWhatsAppNumber\",\n \"from\": \"whatsapp\",\n \"type\": \"text\",\n \"content\": {\n \"text\": \"S/M\"\n },\n \"template_values\": [\"$campo1\", \"$campo2\", \"$campo3\", \"$campo4\", \"$campo5\"],\n \"template_uuid\": \"e1aa2b0fd3884595918f4ac2676acd29\",\n \"optin_contact\": true\n }";
|
$curl_string = "{\n \"to\": \"$installerWhatsAppNumber\",\n \"from\": \"whatsapp\",\n \"type\": \"text\",\n \"content\": {\n \"text\": \"S/M\"\n },\n \"template_values\": [\"$campo1\", \"$campo2\", \"$campo3\", \"$campo4\", \"$campo5\"],\n \"template_uuid\": \"e1aa2b0fd3884595918f4ac2676acd29\",\n \"optin_contact\": true\n }";
|
||||||
} else if ($reprogramming && $changeInstaller) {
|
} else if ($reprogramming && $changeInstaller) {
|
||||||
//Enviar notificación de cambio de instalador
|
//Enviar notificación de cambio de instalador
|
||||||
@ -290,7 +290,7 @@ class ClientCallBellAPI
|
|||||||
$date = sprintf("🗓️ %s", $jobInstallerNotificationData['date']);
|
$date = sprintf("🗓️ %s", $jobInstallerNotificationData['date']);
|
||||||
$installerName = sprintf("👷🏻♂️ *%s*", $jobInstallerNotificationData['installerName']);
|
$installerName = sprintf("👷🏻♂️ *%s*", $jobInstallerNotificationData['installerName']);
|
||||||
|
|
||||||
$campo1_combinado = "$installerName se te ha asignado una tarea con folio $jobId para el cliente $clientFullName, para el $date";
|
$campo1_combinado = "$installerName se te ha asignado una tarea con folio $jobId, del cliente $clientFullName, para el $date";
|
||||||
$campo2 = $jobInstallerNotificationData['clientWhatsApp'];
|
$campo2 = $jobInstallerNotificationData['clientWhatsApp'];
|
||||||
$campo3 = $jobInstallerNotificationData['gmapsLocation'];
|
$campo3 = $jobInstallerNotificationData['gmapsLocation'];
|
||||||
$campo4 = $passwordAntenaCliente;
|
$campo4 = $passwordAntenaCliente;
|
||||||
|
|||||||
4
vendor/composer/installed.php
vendored
4
vendor/composer/installed.php
vendored
@ -5,7 +5,7 @@
|
|||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'reference' => 'e34b3ec0f84e1274c6c6bbed67f8aacd933f0807',
|
'reference' => 'e899945ca3c057b898046cd8f2c8c6ccc2aa7c82',
|
||||||
'name' => 'ucrm-plugins/sms-twilio',
|
'name' => 'ucrm-plugins/sms-twilio',
|
||||||
'dev' => false,
|
'dev' => false,
|
||||||
),
|
),
|
||||||
@ -307,7 +307,7 @@
|
|||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'reference' => 'e34b3ec0f84e1274c6c6bbed67f8aacd933f0807',
|
'reference' => 'e899945ca3c057b898046cd8f2c8c6ccc2aa7c82',
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user