ActividadesEconomicas::listarActividades()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 7
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 13
ccs 0
cts 9
cp 0
crap 6
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 obtener las actividades económicas del SII.
31
 *
32
 * Para más información sobre la API, consulte la `documentación completa de
33
 * Actividades Económicas <https://developers.apigateway.cl/#e64eb128-173a-48c7-ab0b-b6152e59c327>`_.
34
 *
35
 * Cliente específico para interactuar con los endpoints de actividades
36
 * económicas de la API de API Gateway.
37
 *
38
 * Provee métodos para obtener listados de actividades económicas, tanto de
39
 * primera como de segunda categoría.
40
 */
41
class ActividadesEconomicas extends ApiBase
42
{
43
    /**
44
     * Obtiene un listado de actividades económicas. Puede filtrar por categoría.
45
     *
46
     * @param int $categoria Categoría de las actividades económicas (opcional).
47
     * @return \Psr\Http\Message\ResponseInterface Respuesta JSON con el
48
     * listado de actividades económicas.
49
     */
50
    public function listarActividades(
51
        int $categoria = null
52
    ): ResponseInterface {
53
        $url = '/sii/contribuyentes/actividades_economicas';
54
        if ($categoria != null) {
0 ignored issues
show
Bug Best Practice introduced by
It seems like you are loosely comparing $categoria of type integer|null against null; this is ambiguous if the integer can be zero. Consider using a strict comparison !== instead.
Loading history...
55
            $url = $url.sprintf(
56
                '/categoria=%d',
57
                $categoria
58
            );
59
        }
60
        $response = $this->get(resource: $url);
61
62
        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...
63
    }
64
65
    /**
66
     * Obtiene un listado de actividades económicas de primera categoría.
67
     *
68
     * @return \Psr\Http\Message\ResponseInterface Respuesta JSON con el
69
     * listado de actividades económicas de primera categoría.
70
     */
71
    public function listado_primera_categoria(): ResponseInterface
72
    {
73
        $response = $this->listarActividades(categoria: 1);
74
75
        return $response;
76
    }
77
78
    /**
79
     * Obtiene un listado de actividades económicas de segunda categoría.
80
     *
81
     * @return \Psr\Http\Message\ResponseInterface Respuesta JSON con el
82
     * listado de actividades económicas de segunda categoría.
83
     */
84
    public function listado_segunda_categoria(): ResponseInterface
85
    {
86
        $response = $this->listarActividades(categoria: 2);
87
88
        return $response;
89
    }
90
}
91