Completed
Pull Request — master (#128)
by Fabien
10:19 queued 08:15
created

Collector::getStacks()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Http\HttplugBundle\Collector;
4
5
use Exception;
6
use Symfony\Component\HttpFoundation\Request;
7
use Symfony\Component\HttpFoundation\Response;
8
use Symfony\Component\HttpKernel\DataCollector\DataCollector;
9
10
/**
11
 * @author Fabien Bourigault <[email protected]>
12
 *
13
 * @internal
14
 */
15
class Collector extends DataCollector
16
{
17
    /**
18
     * @param array $clients
19
     */
20 2
    public function __construct(array $clients)
21
    {
22 2
        $this->data['stacks'] = [];
23 2
        $this->data['clients'] = $clients;
24 2
    }
25
26
    /**
27
     * {@inheritdoc}
28
     */
29
    public function collect(Request $request, Response $response, Exception $exception = null)
30
    {
31
        // We do not need to collect any data from the Symfony Request and Response
32
    }
33
34
    /**
35
     * {@inheritdoc}
36
     */
37 1
    public function getName()
38
    {
39 1
        return 'httplug';
40
    }
41
42
    /**
43
     * @param Stack $stack
44
     */
45
    public function addStack(Stack $stack)
46
    {
47
        $this->data['stacks'][] = $stack;
48
    }
49
50
    /**
51
     * @return Stack[]
52
     */
53
    public function getStacks()
54
    {
55
        return $this->data['stacks'];
56
    }
57
58
    /**
59
     * @return Stack
60
     */
61
    public function getCurrentStack()
62
    {
63
        return end($this->data['stacks']);
64
    }
65
66
    /**
67
     * @return Stack[]
68
     */
69
    public function getSuccessfulStacks()
70
    {
71
        return array_filter($this->data['stacks'], function (Stack $stack) {
72
            return !$stack->isFailed();
73
        });
74
    }
75
76
    /**
77
     * @return Stack[]
78
     */
79
    public function getFailedStacks()
80
    {
81
        return array_filter($this->data['stacks'], function (Stack $stack) {
82
            return $stack->isFailed();
83
        });
84
    }
85
86
    /**
87
     * @return array
88
     */
89
    public function getClients()
90
    {
91
        return $this->data['clients'];
92
    }
93
94
    /**
95
     * @param $client
96
     *
97
     * @return Stack[]
98
     */
99
    public function getClientStacks($client)
100
    {
101
        return array_filter($this->data['stacks'], function (Stack $stack) use ($client) {
102
            return $stack->getClient() == $client;
103
        });
104
    }
105
}
106