AbstractRequest::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Kerox\Messenger\Request;
6
7
abstract class AbstractRequest
8
{
9
    /**
10
     * @var string
11
     */
12
    protected $pageToken;
13
14
    /**
15
     * AbstractRequest constructor.
16
     */
17 24
    public function __construct(string $pageToken)
18
    {
19 24
        $this->pageToken = $pageToken;
20 24
    }
21
22
    /**
23
     * @return mixed
24
     */
25
    abstract protected function buildHeaders();
26
27
    /**
28
     * @return mixed
29
     */
30
    abstract protected function buildBody();
31
32 24
    protected function buildQuery(): array
33
    {
34
        return [
35 24
            'access_token' => $this->pageToken,
36
        ];
37
    }
38
39 24
    public function build(): array
40
    {
41
        $request = [
42 24
            'headers' => $this->buildHeaders(),
43 24
            'json' => $this->buildBody(),
44 24
            'query' => $this->buildQuery(),
45
        ];
46
47 24
        return array_filter($request);
48
    }
49
}
50