maybeCommitRepositoryChanges()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 2
nc 2
nop 0
dl 0
loc 4
ccs 0
cts 3
cp 0
crap 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace WebTheory\Saveyour\Abstracts;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
use WebTheory\Saveyour\Enum\ServerRequestLocation;
0 ignored issues
show
Bug introduced by
The type WebTheory\Saveyour\Enum\ServerRequestLocation was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
8
trait QueriesRepositoryTrait
9
{
10
    /**
11
     * Instance of model repository
12
     */
13
    protected object $repository;
14
15
    /**
16
     * Method on the repository to query for the model
17
     */
18
    protected string $queryMethod;
19
20
    /**
21
     * Optional method for updating the model in the repository
22
     */
23
    protected ?string $updateMethod = null;
24
25
    /**
26
     * Optional method for committing repository changes to database
27
     */
28
    protected ?string $commitMethod = null;
29
30
    /**
31
     * Parameter name to on the request that contains repository query data
32
     */
33
    protected string $lookup;
34
35
    /**
36
     * Place to look for repository query data in the request
37
     */
38
    protected ServerRequestLocation $location;
39
40
    protected function getModelFromRepository(ServerRequestInterface $request): ?object
41
    {
42
        return $this->repository->{$this->queryMethod}(
43
            $this->location->lookup($this->lookup, $request)
44
        );
45
    }
46
47
    protected function maybeUpdateRepository(object $model): void
48
    {
49
        if ($this->updateMethod) {
50
            $this->updateRepository($model);
51
        }
52
    }
53
54
    protected function maybeCommitRepositoryChanges(): void
55
    {
56
        if ($this->commitMethod) {
57
            $this->commitRepositoryChanges();
58
        }
59
    }
60
61
    protected function updateRepository(object $model): void
62
    {
63
        $this->repository->{$this->updateMethod}($model);
64
    }
65
66
    protected function commitRepositoryChanges(): void
67
    {
68
        $this->repository->{$this->commitMethod}();
69
    }
70
}
71