Completed
Push — master ( bac1bc...5acb47 )
by Ivo
07:35
created

DataCollectorPlugin   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 64.71%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 62
ccs 22
cts 34
cp 0.6471
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A onClientRequest() 0 4 1
A onClientResponse() 0 4 1
A onClientFault() 0 15 1
A getSubscribedEvents() 0 8 1
1
<?php
2
3
namespace Freshcells\SoapClientBundle\Plugin;
4
5
use Freshcells\SoapClientBundle\DataCollector\SoapCallRegistry;
6
use Freshcells\SoapClientBundle\Event\Events;
7
use Freshcells\SoapClientBundle\Event\FaultEvent;
8
use Freshcells\SoapClientBundle\Event\RequestEvent;
9
use Freshcells\SoapClientBundle\Event\ResponseEvent;
10
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
11
12
class DataCollectorPlugin implements EventSubscriberInterface
13
{
14
    /**
15
     * @var SoapCallRegistry
16
     */
17
    private $registry;
18
19
    /**
20
     * @param SoapCallRegistry $registry
21
     */
22 6
    public function __construct(SoapCallRegistry $registry)
23
    {
24 6
        $this->registry = $registry;
25 6
    }
26
27
    /**
28
     * @param RequestEvent $event
29
     */
30 4
    public function onClientRequest(RequestEvent $event)
31
    {
32 4
        $this->registry->addRequest($event);
33 4
    }
34
35
    /**
36
     * @param ResponseEvent $event
37
     */
38 4
    public function onClientResponse(ResponseEvent $event)
39
    {
40 4
        $this->registry->addResponse($event);
41 4
    }
42
43
    /**
44
     * @param FaultEvent $event
45
     */
46 2
    public function onClientFault(FaultEvent $event)
47
    {
48 2
        $this->registry->addRequest($event->getRequestEvent());
49
        //todo use a dedicated fault rendering in profiler
50 2
        $this->registry->addResponse(
51 2
            new ResponseEvent(
52 2
                $event->getId(),
53 2
                $event->getRequestEvent()->getResource(),
54 2
                $event->getRequestEvent()->getRequest(),
55 2
                null,
56 2
                $event->getException()->getMessage(),
57 2
                null
58
            )
59
        );
60 2
    }
61
62
    /**
63
     * {@inheritdoc}
64
     */
65 2
    public static function getSubscribedEvents()
66
    {
67
        return array(
68 2
            Events::REQUEST  => 'onClientRequest',
69
            Events::RESPONSE => 'onClientResponse',
70
            Events::FAULT    => 'onClientFault'
71
        );
72
    }
73
}
74