PostPolicy   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 27
ccs 0
cts 6
cp 0
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A approvesRequest() 0 3 1
A __construct() 0 3 1
A getPosts() 0 3 1
1
<?php
2
3
namespace Leonidas\Library\System\Model\Post\Policies;
4
5
use Leonidas\Library\System\Schema\Abstracts\ExpectsPostTrait;
6
use Psr\Http\Message\ServerRequestInterface;
7
use WebTheory\HttpPolicy\ServerRequestPolicyInterface;
8
9
class PostPolicy implements ServerRequestPolicyInterface
10
{
11
    use ExpectsPostTrait;
0 ignored issues
show
Bug introduced by
The trait Leonidas\Library\System\...tracts\ExpectsPostTrait requires the property $ID which is not provided by Leonidas\Library\System\...ost\Policies\PostPolicy.
Loading history...
12
13
    /**
14
     * @var int[]
15
     */
16
    protected array $posts = [];
17
18
    public function __construct(int ...$posts)
19
    {
20
        $this->posts = $posts;
21
    }
22
23
    /**
24
     * Get the value of posts
25
     *
26
     * @return int[]
27
     */
28
    public function getPosts(): array
29
    {
30
        return $this->posts;
31
    }
32
33
    public function approvesRequest(ServerRequestInterface $request): bool
34
    {
35
        return in_array($this->getPostId($request), $this->posts);
36
    }
37
}
38