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

FindPendingTimeTrackerByUserIdTask   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 31
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A run() 0 6 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