CampainmonitorApiService::bindHook()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 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