Nuevas Características: • Visualizador de pagos mensuales con gráfica de dona (Chart.js) • Tarjetas estadísticas: clientes activos, pagados y pendientes • Tabla de clientes pendientes con saldos en tiempo real • Microservicio Node.js para metadata de Stripe (acceso directo a BD) Mejoras: • Fix crítico: Sincronización automática de saldo en CallBell al agregar facturas • Categorización mejorada de pagos OXXO y Transferencias Stripe • Normalización de valores: "OXXO" → "OXXO Pay" para evitar errores 422 • Configuración .env para credenciales de base de datos Correcciones: • Saldo y estado ahora se actualizan correctamente en CallBell • Fix networking Docker (ECONNREFUSED resuelto) • Fix validación de atributos en API de UCRM • Actualización automática de userId en pagos Stripe Archivos principales: public.php (visualizador de pagos) AbstractMessageNotifierFacade.php (logging sync) ClientCallBellAPI.php (comparación de campos) AbstractStripeOperationsFacade.php (normalización) manifest.json, README.md, CHANGELOG.md (docs)
56 lines
1.7 KiB
PHP
Executable File
56 lines
1.7 KiB
PHP
Executable File
<?php
|
|
namespace Aws\CloudTrail;
|
|
|
|
use Aws\S3\S3Client;
|
|
|
|
/**
|
|
* This class provides an easy way to read log files generated by AWS
|
|
* CloudTrail.
|
|
*
|
|
* CloudTrail log files contain data about your AWS API calls and are stored in
|
|
* Amazon S3. The log files are gzipped and contain structured data in JSON
|
|
* format. This class will automatically ungzip and decode the data, and return
|
|
* the data as an array of log records
|
|
*/
|
|
class LogFileReader
|
|
{
|
|
/** @var S3Client S3 client used to perform GetObject operations */
|
|
private $s3Client;
|
|
|
|
/**
|
|
* @param S3Client $s3Client S3 client used to retrieve objects
|
|
*/
|
|
public function __construct(S3Client $s3Client)
|
|
{
|
|
$this->s3Client = $s3Client;
|
|
}
|
|
|
|
/**
|
|
* Downloads, unzips, and reads a CloudTrail log file from Amazon S3
|
|
*
|
|
* @param string $s3BucketName The bucket name of the log file in Amazon S3
|
|
* @param string $logFileKey The key of the log file in Amazon S3
|
|
*
|
|
* @return array
|
|
*/
|
|
public function read($s3BucketName, $logFileKey)
|
|
{
|
|
// Create a command for getting the log file object
|
|
$command = $this->s3Client->getCommand('GetObject', [
|
|
'Bucket' => (string) $s3BucketName,
|
|
'Key' => (string) $logFileKey,
|
|
'ResponseContentEncoding' => 'x-gzip'
|
|
]);
|
|
|
|
// Make sure gzip encoding header is sent and accepted in order to
|
|
// inflate the response data.
|
|
$command['@http']['headers']['Accept-Encoding'] = 'gzip';
|
|
|
|
// Get the JSON response data and extract the log records
|
|
$result = $this->s3Client->execute($command);
|
|
$logData = json_decode($result['Body'], true);
|
|
|
|
return isset($logData['Records']) ? $logData['Records'] : [];
|
|
}
|
|
}
|