NoaaAlertFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 36
dl 0
loc 49
ccs 35
cts 35
cp 1
rs 10
c 1
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getAlerts() 0 36 2
A __construct() 0 5 1
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
    private $polygonFactory;
15
16 2
    public function __construct(XmlProvider $xmlProvider, NoaaIndexParser $indexParser, PolygonFactory $polygonFactory)
17
    {
18 2
        $this->xmlProvider = $xmlProvider;
19 2
        $this->indexParser = $indexParser;
20 2
        $this->polygonFactory = $polygonFactory;
21 2
    }
22
23 2
    public function getAlerts(): array
24
    {
25 2
        $alerts = array();
26 2
        $alertData = $this->indexParser->parse($this->xmlProvider->getXml());
27
28 2
        foreach ($alertData as $data) {
29 2
            $alert = new NoaaAlert(
30 2
                $data['idString'],
31 2
                $data['idKey'],
32 2
                $data['updatedDateTime'],
33 2
                $data['publishedDateTime'],
34 2
                $data['authorName'],
35 2
                $data['title'],
36 2
                $data['link'],
37 2
                $data['summary'],
38 2
                $data['capEvent'],
39 2
                $data['capEffectiveDateTime'],
40 2
                $data['capExpiresDateTime'],
41 2
                $data['capStatus'],
42 2
                $data['capMsgType'],
43 2
                $data['capCategory'],
44 2
                $data['capUrgencyExpected'],
45 2
                $data['capSeverity'],
46 2
                $data['capCertainty'],
47 2
                $data['capAreaDesc'],
48 2
                $data['capPolygon'],
49 2
                $data['capGeo'],
50 2
                $data['capGeoString'],
51 2
                $data['vtec'],
52 2
                $this->polygonFactory->create($data['capPolygon'])
53
            );
54
55 2
            $alerts[] = $alert;
56
        }
57
58 2
        return $alerts;
59
    }
60
}