Completed
Push — master ( f4119b...0cd623 )
by Mahmoud
04:33
created

FindPendingTimeTrackerByUserIdTask::run()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 6
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace App\Containers\Tracker\Tasks;
4
5
use App\Containers\Tracker\Data\Repositories\TimeTrackerRepository;
6
use App\Containers\Tracker\Models\TimeTracker;
7
use App\Port\Criterias\Eloquent\ThisEqualThatCriteria;
8
use App\Port\Task\Abstracts\Task;
9
10
/**
11
 * Class FindPendingTimeTrackerByUserIdTask.
12
 *
13
 * @author Mahmoud Zalt <[email protected]>
14
 */
15
class FindPendingTimeTrackerByUserIdTask extends Task
16
{
17
18
    /**
19
     * @var  \App\Containers\Tracker\Data\Repositories\TimeTrackerRepository
20
     */
21
    private $timeTrackerRepository;
22
23
    /**
24
     * FindTimeTrackerTask constructor.
25
     *
26
     * @param \App\Containers\Tracker\Data\Repositories\TimeTrackerRepository $timeTrackerRepository
27
     */
28
    public function __construct(TimeTrackerRepository $timeTrackerRepository)
29
    {
30
        $this->timeTrackerRepository = $timeTrackerRepository;
31
    }
32
33
    /**
34
     * @param $userId
35
     *
36
     * @return  mixed
37
     * @throws \Prettus\Repository\Exceptions\RepositoryException
38
     */
39
    public function run($userId)
40
    {
41
        $this->timeTrackerRepository->pushCriteria(new ThisEqualThatCriteria('status', TimeTracker::PENDING));
42
43
        return $this->timeTrackerRepository->findByField('user_id', $userId)->first();
44
    }
45
}
46