Skip to content

Commit c7b367c

Browse files
committed
Se ha reconstruido buena parte del programa. Se eliminaron Base.php, Boleta.php, Boletas.php y la carpeta ejemplos. Se rehicieron los tests en base a los ejemplos eliminados. ApiClient.php fue modificado en la definición de cabeceras, y algunas variables.
1 parent 36b5521 commit c7b367c

17 files changed

Lines changed: 364 additions & 806 deletions

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
vendor
2+
test.env
3+
.phpunit.result.cache
4+
composer
5+
Dockerfile
6+
docs

README.md

Lines changed: 96 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,44 +19,120 @@ $ composer require bhexpress/bhexpress-api-client
1919
Modo de uso
2020
-----------
2121

22-
Se recomienda ver los ejemplos para más detalles. Lo que se muestra aquí es sólo
22+
Se recomienda ver las pruebas para más detalles. Lo que se muestra aquí es sólo
2323
una idea, y muy resumida:
2424

2525
```php
26-
$Boleta = new \bhexpress\api_client\Boleta($token);
27-
$boleta = $Boleta->emitir($datos);
28-
$pdf = $Boleta->pdf($rut_emisor, $boleta['numero']);
29-
file_put_contents('boleta.pdf', $pdf);
26+
use bhexpress\api_client\ApiClient;
27+
28+
$Boleta = new ApiClient();
29+
30+
$periodo = '202407';
31+
$url_listar = '/bhe/boletas?periodo='.$periodo; # Buscar algo similar a urlencode
32+
$response = self::$client->get($url_listar);
33+
34+
echo 'Listado Boletas: '.$response->getBody(); # Resultado del listado
35+
36+
$numero_bhe = '3'; # Número de la BHE a convertir
37+
$url_pdf = '/bhe/pdf/'.$numero_bhe;
38+
$pdf = self::$client->get($url_pdf);
39+
40+
file_put_contents('boleta.pdf', $pdf->getBody()); # Función para crear PDF
3041
```
3142

32-
Ejemplos
43+
Los ejemplos anteriores demuestran la capacidad de obtener BHEs emitidas, y en un caso hasta convertir una de ellas en PDF.
44+
45+
Ejecución de cliente de API
3346
--------
3447

35-
Los ejemplos cubren los siguientes casos:
48+
Para utilizar este programa y sus servicios, deberás definir las siguientes variables de entorno, a partir de
49+
la consola de comandos. En Windows, se hace de la siguiente forma:
3650

37-
- `001-boletas_listado.php`: obtener las boletas de un período.
38-
- `002-boleta_emitir.php`: emisitir una BHE.
39-
- `003-boleta_pdf.php`: descargar el PDF de una BHE.
40-
- `004-boleta_email.php`: enviar por email una BHE.
41-
- `005-boleta_anular.php`: anular una BHE.
51+
```shell
52+
set BHEXPRESS_API_URL="https://bhexpress.cl"
53+
set BHEXPRESS_API_TOKEN="" # aquí el token obtenido en https://bhexpress.cl/usuarios/perfil#token
54+
set BHEXPRESS_EMISOR_RUT="" # aquí el RUT del emisor de las BHE
55+
```
4256

43-
Los ejemplos, por defecto, hacen uso de variables de entornos, si quieres usar
44-
esto debes tenerlas creadas, por ejemplo, en GNU/Linux, con:
57+
En Linux, se hace de la siguiente manera:
4558

4659
```shell
4760
export BHEXPRESS_API_URL="https://bhexpress.cl"
4861
export BHEXPRESS_API_TOKEN="" # aquí el token obtenido en https://bhexpress.cl/usuarios/perfil#token
4962
export BHEXPRESS_EMISOR_RUT="" # aquí el RUT del emisor de las BHE
5063
```
5164

52-
Luego, para probar los ejemplos, lo más rápido, en GNU/Linux, es crear una
53-
carpeta para el proyecto y dentro de esta ejecutar:
65+
Pruebas
66+
--------
67+
68+
Para los siguientes pasos necesitarás los siguientes programas:
69+
- php 7.4
70+
- Composer
71+
- phpunit/phpunit
72+
- vlucas/phpdotenv
73+
- guzzlehttp/guzzle
74+
75+
Crea un archivo llamado `test.env`, y coloca las variables de entorno definidas en `test.env-dist`.
76+
77+
Luego, para ejecutar las pruebas, deberás tener PHP activo. Para más información de qué programas
78+
se necesitarán, referirse a `composer.json`.
79+
80+
Por último, ejecuta el siguiente comando en la consola cmd, Windows powershell, o la shell de linux o Apple.
81+
Abre la consola desde la ubicación de tu proyecto, y ejecuta:
82+
83+
```shell
84+
./vendor/bin/phpunit --filter test_boleta_listar
85+
```
86+
87+
Lo que hizo el comando es ejecutar una prueba que extrae una lista de boletas emitidas en un periodo específico de tiempo.
88+
89+
Los siguientes comandos pertenecen a las siguientes pruebas:
90+
91+
### BoletaListarTest
92+
- Ejecuta una prueba que obtiene un listado de boletas en un periodo de tiempo `AAAAMM`.
93+
- Retorna: Array con todas las boletas emitidas (o vacía si no se han emitido boletas en ese periodo).
94+
- Variables a utilizar: `TEST_LISTAR_PERIODO`
95+
96+
```shell
97+
./vendor/bin/phpunit --filter test_boleta_listar
98+
```
99+
100+
### BoletaEmitirTest
101+
- Ejecuta una prueba que emite una boleta a un destinatario genérico. Importante anular esta boleta cuando las pruebas se terminen.
102+
- Retorna: Array con la información de la boleta emitida.
103+
- Variables a utilizar: `BHEXPRESS_EMISOR_RUT`, `TEST_EMITIR_FECHAEMIS`
104+
105+
```shell
106+
./vendor/bin/phpunit --filter test_boleta_emitir
107+
```
108+
109+
### BoletaPdfTest
110+
- Ejecuta una prueba que convierte una boleta existente en un PDF.
111+
- Retorna: bytes para crear el PDF.
112+
- Variables a utilizar: `TEST_PDF_NUMEROBHE`
113+
114+
```shell
115+
./vendor/bin/phpunit --filter test_boleta_pdf
116+
```
117+
118+
### BoletaEmailTest
119+
- Ejecuta una prueba que envía una BHE existente por correo a un destinatario.
120+
- Retorna: Respuesta con confirmación de que el correo fue enviado a la dirección especificada.
121+
- Variables a utilizar: `TEST_EMAIL_NUMEROBHE`, `TEST_EMAIL_CORREO`
122+
123+
```shell
124+
./vendor/bin/phpunit --filter test_boleta_email
125+
```
126+
127+
### BoletaAnularTest
128+
- Ejecuta una prueba que anula una BHE que sigue vigente.
129+
- Retorna: Cabecera de BHE anulada.
130+
- Variables a utilizar: `TEST_ANULAR_NUMEROBHE`
131+
132+
Esta prueba se debe efectuar teniendo una boleta propia que siga activa pero que desees anular.
54133

55134
```shell
56-
$ composer require sasco/bhexpress-api-client
57-
$ cp -ar vendor/sasco/bhexpress-api-client/ejemplos .
58-
$ cd ejemplos
59-
$ php 001-boletas_listado.php
135+
./vendor/bin/phpunit --filter test_boleta_anular
60136
```
61137

62138
Básicamente, lo que hacen estos 4 comandos es:

0 commit comments

Comments
 (0)