Issues (28)

src/Queries/TrackActivityQuery.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace Sfneal\Tracking\Queries;
4
5
use Sfneal\Helpers\Time\TimePeriods;
6
use Sfneal\Queries\Traits\ParamGetter;
7
use Sfneal\Tracking\Builders\TrackActivityBuilder;
8
use Sfneal\Tracking\Queries\Base\TrackingQuery;
9
use Sfneal\Tracking\Utils\ModelAdapter;
10
11
class TrackActivityQuery extends TrackingQuery
12
{
13
    use ParamGetter;
14
15
    /**
16
     * Retrieve a Query builder.
17
     *
18
     * @return TrackActivityBuilder
19
     */
20
    protected function builder(): TrackActivityBuilder
21
    {
22
        $builder = ModelAdapter::TrackActivity()::query();
23
24
        if (! empty($this->relationships)) {
25
            $builder->with($this->relationships);
26
        }
27
28
        return $builder;
29
    }
30
31
    /**
32
     * Retrieve a TrackActivity by table query result set.
33
     *
34
     * @return TrackActivityBuilder
35
     */
36
    public function execute(): TrackActivityBuilder
37
    {
38
        $tracking = $this->builder();
39
40
        // Table
41
        if ($type = self::getParam($this->request, $this->parameters, 'type')) {
42
            $tracking->whereTrackableType($type);
43
        }
44
45
        // User
46
        if ($user = self::getParam($this->request, $this->parameters, 'user')) {
47
            $tracking->whereUser($user);
48
        }
49
50
        // User(s)
51
        if ($users = self::getParam($this->request, $this->parameters, 'users')) {
52
            $tracking->whereUserIn($users);
53
        }
54
55
        // Key
56
        if ($trackable_ids = self::getParam($this->request, $this->parameters, 'id')) {
57
            $tracking->whereTrackableId($trackable_ids);
58
        }
59
60
        // Time Period
61
        if ($period = self::getParam($this->request, $this->parameters, 'period')) {
62
            if (is_string($period)) {
63
                $period = TimePeriods::timePeriod($period);
64
            }
65
            $tracking->whereBetween('created_at', $period);
0 ignored issues
show
The method whereBetween() does not exist on Sfneal\Tracking\Builders\TrackActivityBuilder. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

65
            $tracking->/** @scrutinizer ignore-call */ 
66
                       whereBetween('created_at', $period);
Loading history...
66
        }
67
68
        return $tracking;
69
    }
70
}
71