Completed
Pull Request — master (#7)
by
unknown
01:14
created

Writer::runLive()   B

Complexity

Conditions 6
Paths 9

Size

Total Lines 41
Code Lines 29

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 41
rs 8.439
c 0
b 0
f 0
cc 6
eloc 29
nc 9
nop 0
1
<?php
2
3
namespace LoteriaApi\Consumer;
4
5
class Writer
6
{
7
    private $datasource;
8
    private $localstorage;
9
    private $data;
10
    
11
    public function setDataSource(array $datasource)
12
    {
13
        $this->datasource = $datasource;
14
        return $this;
15
    }
16
    
17
    public function setLocalStorage($localstorage)
18
    {
19
        $this->localstorage = $localstorage;
20
        return $this;
21
    }
22
    
23
    public function setData(array $data)
24
    {
25
        $this->data = $data;
26
        return $this;
27
    }
28
    
29
    public function run()
30
    {
31
        foreach ($this->datasource as $concursoName => $concurso) {
0 ignored issues
show
Coding Style introduced by
Blank line found at start of control structure
Loading history...
32
            
33
            $xml = new \SimpleXMLElement('<concursos/>');
34
            
35
            foreach ($this->data[$concursoName] as $nrconcurso => $concursoData) {
36
                if (is_numeric($nrconcurso)) {
37
                    $concursoXml = $xml->addChild('concurso');
38
                    $concursoXml->addAttribute('numero', $nrconcurso);
39
                    $concursoXml->addChild('data', $concursoData['data']);
40
                    $dezenas = $concursoXml->addChild('dezenas');
41
                    foreach ($concursoData['dezenas'] as $dezena) {
42
                        $dezenas->addChild('dezena', $dezena);
43
                    }
44
                    $concursoXml->addChild('arrecadacao', $concursoData['arrecadacao']);
45
                    $concursoXml->addChild('total_ganhadores_primeiro_premio', $concursoData['total_ganhadores_primeiro_premio']);
46
                    $concursoXml->addChild('total_ganhadores_segundo_premio', $concursoData['total_ganhadores_segundo_premio']);
47
                    $concursoXml->addChild('total_ganhadores_terceiro_premio', $concursoData['total_ganhadores_terceiro_premio']);
48
                    $concursoXml->addChild('valor_ganhadores_primeiro_premio', $concursoData['valor_ganhadores_primeiro_premio']);
49
                    $concursoXml->addChild('valor_ganhadores_segundo_premio', $concursoData['valor_ganhadores_segundo_premio']);
50
                    $concursoXml->addChild('valor_ganhadores_terceiro_premio', $concursoData['valor_ganhadores_terceiro_premio']);
51
                    $concursoXml->addChild('acumulado', $concursoData['acumulado']);
52
                    $concursoXml->addChild('valor_acumulado', $concursoData['valor_acumulado']);
53
                    $concursoXml->addChild('valor_estimado_proximo_concurso', $concursoData['valor_estimado_proximo_concurso']);
54
                }
55
            }
56
            
57
            $filename = $this->localstorage . $concurso['xml'];
58
            
59
            $dom = new \DOMDocument('1.0');
60
            $dom->preserveWhiteSpace = false;
61
            $dom->formatOutput = true;
62
            $dom->loadXML($xml->asXML());
63
            $dom->save($filename);
64
        }
65
    }
66
67
    private function getSimpleXml($filename)
0 ignored issues
show
Unused Code introduced by
This method is not used, and could be removed.
Loading history...
68
    {
69
        return simplexml_load_file($filename);
70
    }
71
72
   public function runLive() {
73
        foreach ($this->datasource as $concursoName => $concurso) {
0 ignored issues
show
Coding Style introduced by
Blank line found at start of control structure
Loading history...
74
75
            // File of oldest consursos
76
            $filename = $this->localstorage . $concurso['xml'];
77
            
78
            $xml = new \SimpleXMLElement('<concursos/>');
79
            // Start XML form oldest concursos
80
            if (is_file($filename)) {
81
                $xml = new \SimpleXMLElement($filename, null, true);
82
            }
83
            
84
            foreach ($this->data[$concursoName] as $nrconcurso => $concursoData) {
85
                if (is_numeric($nrconcurso)) {
86
                    $concursoXml = $xml->addChild('concurso');
87
                    $concursoXml->addAttribute('numero', $nrconcurso);
88
                    $concursoXml->addChild('data', $concursoData['data']);
89
                    $dezenas = $concursoXml->addChild('dezenas');
90
                    foreach ($concursoData['dezenas'] as $dezena) {
91
                        $dezenas->addChild('dezena', $dezena);
92
                    }
93
                    $concursoXml->addChild('arrecadacao', $concursoData['arrecadacao']);
94
                    $concursoXml->addChild('total_ganhadores_primeiro_premio', $concursoData['total_ganhadores_primeiro_premio']);
95
                    $concursoXml->addChild('total_ganhadores_segundo_premio', $concursoData['total_ganhadores_segundo_premio']);
96
                    $concursoXml->addChild('total_ganhadores_terceiro_premio', $concursoData['total_ganhadores_terceiro_premio']);
97
                    $concursoXml->addChild('valor_ganhadores_primeiro_premio', $concursoData['valor_ganhadores_primeiro_premio']);
98
                    $concursoXml->addChild('valor_ganhadores_segundo_premio', $concursoData['valor_ganhadores_segundo_premio']);
99
                    $concursoXml->addChild('valor_ganhadores_terceiro_premio', $concursoData['valor_ganhadores_terceiro_premio']);
100
                    $concursoXml->addChild('acumulado', $concursoData['acumulado']);
101
                    $concursoXml->addChild('valor_acumulado', $concursoData['valor_acumulado']);
102
                    $concursoXml->addChild('valor_estimado_proximo_concurso', $concursoData['valor_estimado_proximo_concurso']);
103
                }
104
            }
105
106
            $dom = new \DOMDocument('1.0');
107
            $dom->preserveWhiteSpace = false;
108
            $dom->formatOutput = true;
109
            $dom->loadXML($xml->asXML());
110
            $dom->save($filename);
111
        }
112
    }
0 ignored issues
show
Coding Style introduced by
Closing brace indented incorrectly; expected 3 spaces, found 4
Loading history...
113
}
114