MailgunApiService::bind()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
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 MailgunApiService extends BaseApiService
9
{
10
    private $eventAssoc = array(
11
        'delivered'     => SwmMailHookEvent::MAILHOOK_SEND,
12
        'opened'        => SwmMailHookEvent::MAILHOOK_OPEN,
13
        'clicked'       => SwmMailHookEvent::MAILHOOK_CLICK,
14
        'complained'    => SwmMailHookEvent::MAILHOOK_SPAM,
15
        'unsubscribed'  => SwmMailHookEvent::MAILHOOK_UNSUB,
16
        'failed'        => SwmMailHookEvent::MAILHOOK_REJECT,
17
    );
18
19
    /**
20
     * @param  array  $hook
21
     * @return HookInterface
22
     */
23
    private function bindHook(array $hook)
24
    {
25
        return new DefaultHook($hook['event'], $hook['recipient'], 'mailgun', $hook, $this->eventAssoc[$hook['event']]);
26
    }
27
    
28
    /**
29
     * @return array<HookInterface>
30
     */
31
    public function bind()
32
    {
33
        $metaData = json_decode($this->request->getContent(), true);
34
35
        return array($this->bindHook($metaData['event-data']));
36
    }
37
}
38