Completed
Push — master ( a3ba2a...bb951d )
by Carlos
01:55
created

GeoClient::getStopsFromXY()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 6
cts 6
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 3
crap 1
1
<?php
2
3
namespace Afonso\Emt;
4
5
use RuntimeException;
6
7
/**
8
 * The SDK client for the EMT OpenData API GEO service.
9
 *
10
 * @author Carlos Afonso Pérez <[email protected]>
11
 */
12
class GeoClient extends Client
13
{
14
    /**
15
     * Return details about stops around a given address and, optionally,
16
     * within the specified radius.
17
     *
18
     * An optional radius can be passed as well.
19
     *
20
     * @param string $streetName
21
     * @param int $streetNumber
22
     * @param int|null $radius
23
     * @return \stdClass
24
     * @throws \RuntimeException
25
     */
26 3
    public function getStreet($streetName, $streetNumber, $radius = null)
27
    {
28
        $params = [
29 3
            'description' => $streetName,
30 3
            'streetNumber' => $streetNumber,
31 3
            'Radius' => $radius,
32 1
        ];
33 3
        return $this->callGeoService('GetStreet.php', $params);
34
    }
35
36
    /**
37
     * Return details about stops around a given stop and, optionally, within
38
     * the specified radius.
39
     *
40
     * @param int $stopId
41
     * @param int|null $radius
42
     * @return \stdClass
43
     * @throws \RuntimeException
44
     */
45 3
    public function getStopsFromStop($stopId, $radius = null)
46
    {
47
        $params = [
48 3
            'idStop' => $stopId,
49 3
            'Radius' => $radius,
50 1
        ];
51 3
        return $this->callGeoService('GetStopsFromStop.php', $params);
52
    }
53
54
    /**
55
     * Return details about stops around a given geographic coordinate and,
56
     * optionally, within the specified radius.
57
     *
58
     * @param int $stopId
0 ignored issues
show
Bug introduced by
There is no parameter named $stopId. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
59
     * @param int|null $radius
60
     * @return \stdClass
61
     * @throws \RuntimeException
62
     */
63 3
    public function getStopsFromXY($x, $y, $radius = null)
64
    {
65
        $params = [
66 3
            'coordinateX' => $x,
67 3
            'coordinateY' => $y,
68 3
            'Radius' => $radius,
69 1
        ];
70 3
        return $this->callGeoService('GetStopsFromXY.php', $params);
71
    }
72
73
    /**
74
     * Return incoming bus info for the given stop, such as distance and
75
     * waiting time.
76
     *
77
     * @param int $stopId
78
     * @return \stdClass
79
     * @throws \RuntimeException
80
     */
81 3
    public function getArriveStop($stopId)
82
    {
83 3
        $params = ['stopId' => $stopId];
84 3
        return $this->callGeoService('GetArriveStop.php', $params);
85
    }
86
87
    /**
88
     * Make an arbitrary call to the GEO service.
89
     *
90
     * @param string $endpoint
91
     * @param array $params
92
     * @return \stdClass
93
     */
94 12
    protected function callGeoService($endpoint, array $params = [])
95
    {
96 12
        $url = self::ENDPOINT . '/emt-proxy-server/last/geo/' . $endpoint;
97 12
        return $this->launcher->launchRequest($url, $params);
98
    }
99
}
100