Mailgun::headers()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Shield\Mailgun;
4
5
use Illuminate\Http\Request;
6
use Illuminate\Support\Collection;
7
use Shield\Shield\Contracts\Service;
8
9
/**
10
 * Class Skeleton
11
 *
12
 * @package \Shield\Skeleton
13
 */
14
class Mailgun implements Service
15
{
16 4
    public function verify(Request $request, Collection $config): bool
17
    {
18 4
        $tolerance = $config->get('tolerance', 60 * 5);
19 4
        $timestamp = $request->input('timestamp');
20
21
        if (
22 4
            ! $request->isMethod('POST') ||
23 4
            abs(time() - $timestamp) > $tolerance
24
        ) {
25 2
            return false;
26
        }
27
28 3
        $signature = hash_hmac(
29 3
            'sha256',
30 3
            $request->input('timestamp') . $request->input('token'),
31 3
            $config->get('token')
32
        );
33
34 3
        return $signature === $request->input('signature');
35
    }
36
37 1
    public function headers(): array
38
    {
39 1
        return [];
40
    }
41
}
42