Passed
Push — master ( fc71f1...2fa0f4 )
by Tom
03:17
created

NoaaAlertFactory::getAlerts()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 36
Code Lines 29

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 30
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 29
c 0
b 0
f 0
nc 2
nop 0
dl 0
loc 36
ccs 30
cts 30
cp 1
crap 2
rs 9.456
1
<?php
2
3
namespace NoaaCapAlerts\Model;
4
5
6
use NoaaCapAlerts\Model\Polygon\PolygonFactory;
7
use NoaaCapAlerts\Parser\NoaaIndexParser;
8
use NoaaCapAlerts\XmlProvider\XmlProvider;
9
10
class NoaaAlertFactory
11
{
12
    private $xmlProvider;
13
    private $indexParser;
14
15 2
    public function __construct(XmlProvider $xmlProvider, NoaaIndexParser $indexParser, PolygonFactory $polygonFactory)
16
    {
17 2
        $this->xmlProvider = $xmlProvider;
18 2
        $this->indexParser = $indexParser;
19 2
        $this->polygonFactory = $polygonFactory;
0 ignored issues
show
Bug Best Practice introduced by
The property polygonFactory does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
20 2
    }
21
22 2
    public function getAlerts(): array
23
    {
24 2
        $alerts = array();
25 2
        $alertData = $this->indexParser->parse($this->xmlProvider->getXml());
26
27 2
        foreach ($alertData as $data) {
28 2
            $alert = new NoaaAlert(
29 2
                $data['idString'],
30 2
                $data['idKey'],
31 2
                $data['updatedDateTime'],
32 2
                $data['publishedDateTime'],
33 2
                $data['authorName'],
34 2
                $data['title'],
35 2
                $data['link'],
36 2
                $data['summary'],
37 2
                $data['capEvent'],
38 2
                $data['capEffectiveDateTime'],
39 2
                $data['capExpiresDateTime'],
40 2
                $data['capStatus'],
41 2
                $data['capMsgType'],
42 2
                $data['capCategory'],
43 2
                $data['capUrgencyExpected'],
44 2
                $data['capSeverity'],
45 2
                $data['capCertainty'],
46 2
                $data['capAreaDesc'],
47 2
                $data['capPolygon'],
48 2
                $data['capGeo'],
49 2
                $data['capGeoString'],
50 2
                $data['vtec'],
51 2
                $this->polygonFactory->create($data['capPolygon'])
52
            );
53
54 2
            $alerts[] = $alert;
55
        }
56
57 2
        return $alerts;
58
    }
59
}