CampainmonitorApiService   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 27
c 0
b 0
f 0
wmc 2
lcom 2
cbo 3
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A bindHook() 0 4 1
A bind() 0 6 1
1
<?php
2
3
namespace Swm\Bundle\MailHookBundle\ApiService;
4
5
use Swm\Bundle\MailHookBundle\Hook\DefaultHook;
6
use Swm\Bundle\MailHookBundle\SwmMailHookEvent;
7
8
class CampainmonitorApiService extends BaseApiService
9
{
10
    private $eventAssoc = array(
11
        'Deactivate' => SwmMailHookEvent::MAILHOOK_UNSUB,
12
        'Subscribe'  => SwmMailHookEvent::MAILHOOK_OTHER,
13
        'Update'     => SwmMailHookEvent::MAILHOOK_OTHER,
14
    );
15
16
    /**
17
     * @param  array  $hook
18
     * @return HookInterface
19
     */
20
    private function bindHook(array $hook)
21
    {
22
        return new DefaultHook($hook['Type'], $hook['EmailAddress'], 'campainmonitor', $hook, $this->eventAssoc[$hook['Type']]);
23
    }
24
25
    /**
26
     * @return array<HookInterface>
27
     */
28
    public function bind()
29
    {
30
        $metaData = json_decode($this->request->getContent(), true);
31
32
        return array_map(array($this, 'bindHook'), json_decode($metaData['Events']));
33
    }
34
}
35