Skip to content

Commit 85c461c

Browse files
committed
Se arregló y estandarizó la documentación. Se corrigieron y separaron los tests en pagos_cobros_masivos. Se probó con éxito la mayoría de tests. Se estandarizó el verbose.
1 parent cfb47a8 commit 85c461c

23 files changed

Lines changed: 746 additions & 867 deletions

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
vendor/
22
tests/test.env
3-
tests/archivos/
3+
tests/archivos/dte_facturacion/*
44

55
var/
66
tools/

src/ApiClient.php

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
/**
2727
* Clase ApiClient para la integración con la API de LibreDTE.
2828
*
29-
* Proporciona funcionalidades para realizar peticiones HTTP a la API de LibreDTE,
30-
* incluyendo métodos para realizar solicitudes GET y POST.
29+
* Proporciona funcionalidades para realizar peticiones HTTP a la API de
30+
* LibreDTE, incluyendo métodos para realizar solicitudes GET y POST.
3131
*/
3232
class ApiClient
3333
{
@@ -66,8 +66,8 @@ class ApiClient
6666
/**
6767
* Constructor de la clase ApiClient.
6868
*
69-
* Inicializa el cliente con las credenciales y la URL de la API. Si no se proporcionan,
70-
* se intentará obtener desde las variables de entorno.
69+
* Inicializa el cliente con las credenciales y la URL de la API. Si no se
70+
* proporcionan, se intentará obtener desde las variables de entorno.
7171
*
7272
* @param string|null $hash Hash de autenticación del usuario en LibreDTE.
7373
* @param string|null $url URL base de la API de LibreDTE.
@@ -89,8 +89,8 @@ public function __construct($hash = null, $url = null)
8989
/**
9090
* Establece una cabecera para las solicitudes HTTP.
9191
*
92-
* Permite definir un valor para una cabecera específica que se incluirá en todas
93-
* las solicitudes HTTP realizadas por la instancia del cliente.
92+
* Permite definir un valor para una cabecera específica que se incluirá en
93+
* todas las solicitudes HTTP realizadas por la instancia del cliente.
9494
*
9595
* @param string $name Nombre de la cabecera.
9696
* @param mixed $value Valor de la cabecera.
@@ -103,10 +103,11 @@ public function setHeader(string $name, $value)
103103
/**
104104
* Configura las opciones de SSL para las conexiones HTTP.
105105
*
106-
* Este método permite activar o desactivar la verificación del certificado SSL
107-
* del servidor.
106+
* Este método permite activar o desactivar la verificación del certificado
107+
* SSL del servidor.
108108
*
109-
* @param boolean $sslcheck Activar o desactivar la verificación del certificado SSL.
109+
* @param boolean $sslcheck Activar o desactivar la verificación del
110+
* certificado SSL.
110111
*/
111112
public function setSSL($sslcheck = true)
112113
{
@@ -137,7 +138,8 @@ public function post($resource, $data = null, array $headers = [])
137138
/**
138139
* Realiza una solicitud GET a la API de LibreDTE.
139140
*
140-
* Recupera datos de un recurso específico de la API utilizando el método GET.
141+
* Recupera datos de un recurso específico de la API utilizando el método
142+
* GET.
141143
*
142144
* @param string $resource El recurso de la API a solicitar.
143145
* @param mixed $data Los datos a enviar en la solicitud GET.
@@ -162,7 +164,8 @@ public function get($resource, $data = null, array $headers = [])
162164
* como el hash de autenticación o la URL base de la API.
163165
*
164166
* @param string $name Nombre de la variable de entorno.
165-
* @return string|null Valor de la variable de entorno o null si no está definida.
167+
* @return string|null Valor de la variable de entorno o null si no está
168+
* definida.
166169
*/
167170
private function env($name)
168171
{

src/ApiException.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
namespace libredte\api_client;
2525

2626
/**
27-
* Clase ApiException para la gestión de excepciones en el cliente de la API de LibreDTE.
27+
* Clase ApiException para la gestión de excepciones en el cliente de la API
28+
* de LibreDTE.
2829
*
29-
* Esta clase extiende la clase Exception estándar de PHP y se utiliza para manejar
30-
* errores específicos que pueden ocurrir durante las interacciones con la API de LibreDTE.
31-
* Las instancias de ApiException pueden incluir información adicional relevante para
32-
* los errores de la API.
30+
* Esta clase extiende la clase Exception estándar de PHP y se utiliza para
31+
* manejar errores específicos que pueden ocurrir durante las interacciones
32+
* con la API de LibreDTE.
33+
* Las instancias de ApiException pueden incluir información adicional
34+
* relevante para los errores de la API.
3335
*/
3436
class ApiException extends \Exception
3537
{

src/HttpCurlClient.php

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@
2626
/**
2727
* Clase HttpCurlClient para realizar consultas HTTP utilizando cURL.
2828
*
29-
* Esta clase proporciona una interfaz para realizar peticiones HTTP, como GET y POST,
30-
* utilizando cURL. Ofrece configuración de SSL y manejo de errores de cURL.
29+
* Esta clase proporciona una interfaz para realizar peticiones HTTP, como GET
30+
* y POST, utilizando cURL. Ofrece configuración de SSL y manejo de errores de
31+
* cURL.
3132
*/
3233
class HttpCurlClient
3334
{
@@ -61,7 +62,8 @@ public function getErrors()
6162
/**
6263
* Devuelve el último error ocurrido en una petición HTTP.
6364
*
64-
* Este método devuelve el último error generado por cURL en una petición HTTP.
65+
* Este método devuelve el último error generado por cURL en una petición
66+
* HTTP.
6567
*
6668
* @return string Descripción del último error de cURL.
6769
*/
@@ -73,10 +75,11 @@ public function getLastError()
7375
/**
7476
* Configura las opciones de SSL para las peticiones HTTP.
7577
*
76-
* Este método permite activar o desactivar la verificación del certificado SSL
77-
* del servidor.
78+
* Este método permite activar o desactivar la verificación del certificado
79+
* SSL del servidor.
7880
*
79-
* @param boolean $sslcheck Activar o desactivar la verificación del certificado SSL.
81+
* @param boolean $sslcheck Activar o desactivar la verificación del
82+
* certificado SSL.
8083
*/
8184
public function setSSL($sslcheck = true)
8285
{
@@ -86,7 +89,8 @@ public function setSSL($sslcheck = true)
8689
/**
8790
* Realiza una solicitud HTTP a una URL.
8891
*
89-
* Este método ejecuta una petición HTTP utilizando cURL y devuelve la respuesta.
92+
* Este método ejecuta una petición HTTP utilizando cURL y devuelve la
93+
* respuesta.
9094
* Soporta varios métodos HTTP como GET, POST, PUT, DELETE, etc.
9195
*
9296
* @param string $method Método HTTP a utilizar.
@@ -159,10 +163,12 @@ public function query($method, string $url, $data = [], array $headers = [])
159163
}
160164

161165
/**
162-
* Método que procesa y convierte la cabecera en texto plano a un arreglo asociativo.
166+
* Método que procesa y convierte la cabecera en texto plano a un arreglo
167+
* asociativo.
163168
*
164-
* Convierte las cabeceras HTTP dadas en texto plano a un arreglo asociativo. Si una cabecera
165-
* aparece más de una vez, su valor será un arreglo con todos sus valores.
169+
* Convierte las cabeceras HTTP dadas en texto plano a un arreglo
170+
* asociativo. Si una cabecera aparece más de una vez, su valor será un
171+
* arreglo con todos sus valores.
166172
*
167173
* @param string $headers_txt Cabeceras HTTP en formato de texto plano.
168174
* @return array Arreglo asociativo con las cabeceras procesadas.
@@ -197,13 +203,16 @@ private function parseResponseHeaders($headers_txt)
197203
}
198204

199205
/**
200-
* Método que procesa la línea de estado de la respuesta HTTP y extrae información útil.
206+
* Método que procesa la línea de estado de la respuesta HTTP y extrae
207+
* información útil.
201208
*
202-
* Extrae el protocolo, el código de estado y el mensaje del estado de la línea de respuesta HTTP.
209+
* Extrae el protocolo, el código de estado y el mensaje del estado de la
210+
* línea de respuesta HTTP.
203211
* Útil para entender y manejar la respuesta HTTP.
204212
*
205213
* @param array|string $response_line Línea de respuesta HTTP.
206-
* @return array Arreglo con información del estado, incluyendo protocolo, código y mensaje.
214+
* @return array Arreglo con información del estado, incluyendo protocolo,
215+
* código y mensaje.
207216
*/
208217
private function parseResponseStatus($response_line)
209218
{

tests/dte_facturacion/AbstractDteFacturacion.php

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,13 @@ abstract class AbstractDteFacturacion extends TestCase
9898
public static function setUpBeforeClass(): void
9999
{
100100
self::$verbose = (bool)env('TEST_VERBOSE', 'false');
101-
self::$emisor_rut = (explode('-', (string)env('LIBREDTE_RUT'))[0]);
102-
self::$datos['Encabezado']['Emisor']['RUTEmisor'] = env('LIBREDTE_RUT');
101+
self::$emisor_rut = (explode(
102+
'-',
103+
(string)env('LIBREDTE_RUT'))[0]
104+
);
105+
self::$datos['Encabezado']['Emisor']['RUTEmisor'] = env(
106+
'LIBREDTE_RUT'
107+
);
103108
self::$client = new ApiClient();
104109
}
105110

@@ -112,22 +117,28 @@ public static function setUpBeforeClass(): void
112117
*/
113118
protected function listarDteTemp(): array
114119
{
115-
# Se crea el filtro a utilizar, en este caso fechas de búsqueda.
120+
// Se crea el filtro a utilizar, en este caso fechas de búsqueda.
116121
$filtros = [
117-
'fecha_desde' => '2015-01-01',
122+
'fecha_desde' => date('Y-m-d', strtotime('-30 days')),
118123
'fecha_hasta' => date('Y-m-d'),
119124
];
120-
# Se genera el recurso a consumir.
121-
$resource = sprintf('/dte/dte_tmps/buscar/%d', self::$emisor_rut);
122-
# Se envía la solicitud http y se guarda su respuesta.
125+
// Se genera el recurso a consumir.
126+
$resource = sprintf(
127+
'/dte/dte_tmps/buscar/%d',
128+
self::$emisor_rut
129+
);
130+
// Se envía la solicitud http y se guarda su respuesta.
123131
$response = self::$client->post($resource, $filtros);
124132

125-
# Si el código http no es '200', arroja error ApiException.
133+
// Si el código http no es '200', arroja error ApiException.
126134
if ($response['status']['code'] !== '200') {
127-
throw new ApiException($response['body'], (int)$response['status']['code']);
135+
throw new ApiException(
136+
$response['body'],
137+
(int)$response['status']['code']
138+
);
128139
}
129140

130-
# Retorna la respuesta http.
141+
// Retorna la respuesta http.
131142
return $response;
132143
}
133144

@@ -140,15 +151,21 @@ protected function listarDteTemp(): array
140151
*/
141152
protected function emitirDteTemp(): array
142153
{
143-
# Se envía la solicitud http y se guarda su respuesta.
144-
$response = self::$client->post('/dte/documentos/emitir', self::$datos);
154+
// Se envía la solicitud http y se guarda su respuesta.
155+
$response = self::$client->post(
156+
'/dte/documentos/emitir',
157+
self::$datos
158+
);
145159

146-
# Si el código http no es '200', arroja error ApiException.
160+
// Si el código http no es '200', arroja error ApiException.
147161
if ($response['status']['code'] !== '200') {
148-
throw new ApiException($response['body'], (int)$response['status']['code']);
162+
throw new ApiException(
163+
$response['body'],
164+
(int)$response['status']['code']
165+
);
149166
}
150167

151-
# Retorna la respuesta http.
168+
// Retorna la respuesta http.
152169
return $response;
153170
}
154171
}

tests/dte_facturacion/BuscarDteTempTest.php

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ class BuscarDteTempTest extends AbstractDteFacturacion
4444
public function testBuscarDteTemp(): void
4545
{
4646
try {
47-
# Se emite un DTE temporal para ejecutar esta prueba.
47+
// Se emite un DTE temporal para ejecutar esta prueba.
4848
$dte_temp = $this->emitirDteTemp();
4949

50-
# Se genera el recurso para buscar el DTE temporal generado.
50+
// Se genera el recurso para buscar el DTE temporal generado.
5151
$resource = sprintf(
5252
"/dte/dte_tmps/info/%d/%d/%s/%d",
5353
$dte_temp['body']['receptor'],
@@ -56,25 +56,34 @@ public function testBuscarDteTemp(): void
5656
self::$emisor_rut
5757
);
5858

59-
# Se envía la solicitud http y se guarda su respuesta.
59+
// Se envía la solicitud http y se guarda su respuesta.
6060
$response = self::$client->get($resource);
61-
# Si el código http no es '200', arroja error ApiException.
61+
// Si el código http no es '200', arroja error ApiException.
6262
if ($response['status']['code'] !== '200') {
63-
throw new ApiException($response['body'], (int)$response['status']['code']);
63+
throw new ApiException(
64+
$response['body'],
65+
(int)$response['status']['code']
66+
);
6467
}
65-
# Se obtiene el body de la lista.
68+
// Se obtiene el body de la lista.
6669
$documento = $response['body'];
6770

68-
# Se compara el código con '200' Si no es 200, la prueba falla.
71+
// Se compara el código con '200' Si no es 200, la prueba falla.
6972
$this->assertSame('200', $response['status']['code']);
70-
# Se despliega en consola los resultados si verbose es true.
73+
// Se despliega en consola los resultados si verbose es true.
7174
if (self::$verbose) {
72-
echo "\n",'testBuscarDteTemp() DTE: ',json_encode($documento),"\n";
75+
echo "\n",'testBuscarDteTemp() DTE: ',json_encode(
76+
$documento
77+
),"\n";
7378
}
7479
} catch (ApiException $e) {
75-
# Si falla, desplegará el mensaje y error en el siguiente formato:
76-
# [ApiException codigo-http] mensaje]
77-
$this->fail(sprintf('[ApiException %d] %s', $e->getCode(), $e->getMessage()));
80+
// Si falla, desplegará el mensaje y error en el siguiente formato:
81+
// [ApiException codigo-http] mensaje]
82+
$this->fail(sprintf(
83+
'[ApiException %d] %s',
84+
$e->getCode(),
85+
$e->getMessage()
86+
));
7887
}
7988
}
8089
}

0 commit comments

Comments
 (0)