Completed
Pull Request — master (#128)
by Fabien
08:06
created

Collector::getCurrentStack()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

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