Misii::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 9
ccs 0
cts 5
cp 0
crap 2
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * API Gateway: Cliente de API en PHP.
7
 * Copyright (C) API Gateway <https://www.apigateway.cl>
8
 *
9
 * Este programa es software libre: usted puede redistribuirlo y/o modificarlo
10
 * bajo los términos de la GNU Lesser General Public License (LGPL) publicada
11
 * por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia,
12
 * o (a su elección) cualquier versión posterior de la misma.
13
 *
14
 * Este programa se distribuye con la esperanza de que sea útil, pero SIN
15
 * GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD
16
 * PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la GNU Lesser General
17
 * Public License (LGPL) para obtener una información más detallada.
18
 *
19
 * Debería haber recibido una copia de la GNU Lesser General Public License
20
 * (LGPL) junto a este programa. En caso contrario, consulte
21
 * <http://www.gnu.org/licenses/lgpl.html>.
22
 */
23
24
namespace apigatewaycl\api_client\sii;
25
26
use apigatewaycl\api_client\ApiBase;
27
use Psr\Http\Message\ResponseInterface;
28
29
/**
30
 * Módulo para interactuar con la sección MiSii de un contribuyente en el
31
 * sitio web del SII.
32
 *
33
 * Para más información sobre la API, consulte la `documentación completa de
34
 * MiSii <https://developers.apigateway.cl/#b585f374-f106-46a9-9f47-666d478b8ac8>`_.
35
 */
36
class Misii extends ApiBase
37
{
38
    /**
39
     * Cliente específico para interactuar con los endpoints de un Contribuyente
40
     * de MiSii de la API de API Gateway.
41
     *
42
     * Hereda de ApiBase y utiliza su funcionalidad para realizar solicitudes
43
     * a la API.
44
     *
45
     * @param array $credenciales Credenciales de autenticación.
46
     * @param string|null $token Token de autenticación para la API.
47
     * @param string|null $url URL base para la API.
48
     */
49
    public function __construct(
50
        array $credenciales,
51
        string $token = null,
52
        string $url = null
53
    ) {
54
        parent::__construct(
55
            credenciales: $credenciales,
56
            token: $token,
57
            url: $url
58
        );
59
    }
60
61
    /**
62
     * Obtiene los datos de MiSii del contribuyente autenticado en el SII.
63
     *
64
     * @param mixed|null $auth_cache Parámetro de caché de autenticación. Si es 0,
65
     * se refrescará la caché. Si se obtiene "Too many requests", no
66
     * usar este parámetro.
67
     * @return \Psr\Http\Message\ResponseInterface Respuesta JSON con los
68
     * datos del contribuyente.
69
     */
70
    public function obtenerDatosContribuyenteMisii(
71
        mixed $auth_cache = null
72
    ): ResponseInterface {
73
        $url = '/sii/misii/contribuyente/datos';
74
        if ($auth_cache != null) {
75
            $url = $url.'?auth_cache=0';
76
        }
77
78
        $body = [
79
            'auth' => $this->getAuthPass(),
80
        ];
81
        $response = $this->post(resource: $url, data: $body);
82
        return $response;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $response could return the type null which is incompatible with the type-hinted return Psr\Http\Message\ResponseInterface. Consider adding an additional type-check to rule them out.
Loading history...
83
    }
84
}
85