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)
134 lines
3.1 KiB
PHP
Executable File
134 lines
3.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace GuzzleHttp;
|
|
|
|
use Psr\Http\Message\RequestInterface;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use Psr\Http\Message\UriInterface;
|
|
|
|
/**
|
|
* Represents data at the point after it was transferred either successfully
|
|
* or after a network error.
|
|
*/
|
|
final class TransferStats
|
|
{
|
|
/**
|
|
* @var RequestInterface
|
|
*/
|
|
private $request;
|
|
|
|
/**
|
|
* @var ResponseInterface|null
|
|
*/
|
|
private $response;
|
|
|
|
/**
|
|
* @var float|null
|
|
*/
|
|
private $transferTime;
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
private $handlerStats;
|
|
|
|
/**
|
|
* @var mixed|null
|
|
*/
|
|
private $handlerErrorData;
|
|
|
|
/**
|
|
* @param RequestInterface $request Request that was sent.
|
|
* @param ResponseInterface|null $response Response received (if any)
|
|
* @param float|null $transferTime Total handler transfer time.
|
|
* @param mixed $handlerErrorData Handler error data.
|
|
* @param array $handlerStats Handler specific stats.
|
|
*/
|
|
public function __construct(
|
|
RequestInterface $request,
|
|
?ResponseInterface $response = null,
|
|
?float $transferTime = null,
|
|
$handlerErrorData = null,
|
|
array $handlerStats = []
|
|
) {
|
|
$this->request = $request;
|
|
$this->response = $response;
|
|
$this->transferTime = $transferTime;
|
|
$this->handlerErrorData = $handlerErrorData;
|
|
$this->handlerStats = $handlerStats;
|
|
}
|
|
|
|
public function getRequest(): RequestInterface
|
|
{
|
|
return $this->request;
|
|
}
|
|
|
|
/**
|
|
* Returns the response that was received (if any).
|
|
*/
|
|
public function getResponse(): ?ResponseInterface
|
|
{
|
|
return $this->response;
|
|
}
|
|
|
|
/**
|
|
* Returns true if a response was received.
|
|
*/
|
|
public function hasResponse(): bool
|
|
{
|
|
return $this->response !== null;
|
|
}
|
|
|
|
/**
|
|
* Gets handler specific error data.
|
|
*
|
|
* This might be an exception, a integer representing an error code, or
|
|
* anything else. Relying on this value assumes that you know what handler
|
|
* you are using.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function getHandlerErrorData()
|
|
{
|
|
return $this->handlerErrorData;
|
|
}
|
|
|
|
/**
|
|
* Get the effective URI the request was sent to.
|
|
*/
|
|
public function getEffectiveUri(): UriInterface
|
|
{
|
|
return $this->request->getUri();
|
|
}
|
|
|
|
/**
|
|
* Get the estimated time the request was being transferred by the handler.
|
|
*
|
|
* @return float|null Time in seconds.
|
|
*/
|
|
public function getTransferTime(): ?float
|
|
{
|
|
return $this->transferTime;
|
|
}
|
|
|
|
/**
|
|
* Gets an array of all of the handler specific transfer data.
|
|
*/
|
|
public function getHandlerStats(): array
|
|
{
|
|
return $this->handlerStats;
|
|
}
|
|
|
|
/**
|
|
* Get a specific handler statistic from the handler by name.
|
|
*
|
|
* @param string $stat Handler specific transfer stat to retrieve.
|
|
*
|
|
* @return mixed|null
|
|
*/
|
|
public function getHandlerStat(string $stat)
|
|
{
|
|
return $this->handlerStats[$stat] ?? null;
|
|
}
|
|
}
|