Completed
Push — master ( e812a5...a8d589 )
by Mahmoud
03:57
created

ListUsersTask::run()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
rs 9.4285
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
3
namespace App\Containers\User\Tasks;
4
5
use App\Containers\User\Contracts\UserRepositoryInterface;
6
use App\Port\Action\Abstracts\Action;
7
use App\Port\Criterias\Eloquent\OrderByCreationDateDescendingCriteria;
8
9
/**
10
 * Class ListUsersTask.
11
 *
12
 * @author Mahmoud Zalt <[email protected]>
13
 */
14
class ListUsersTask extends Action
15
{
16
17
    /**
18
     * @var \App\Containers\User\Contracts\UserRepositoryInterface
19
     */
20
    private $userRepository;
21
22
    /**
23
     * ListAndSearchUsersAction constructor.
24
     *
25
     * @param \App\Containers\User\Contracts\UserRepositoryInterface $userRepository
26
     */
27
    public function __construct(UserRepositoryInterface $userRepository)
28
    {
29
        $this->userRepository = $userRepository;
30
    }
31
32
    /**
33
     * The search text is auto-magically applied.
34
     *
35
     * @param bool|true $order
36
     *
37
     * @return  mixed
38
     */
39
    public function run($order = true)
40
    {
41
        if($order){
42
            $this->userRepository->pushCriteria(new OrderByCreationDateDescendingCriteria());
43
        }
44
45
        $users = $this->userRepository->paginate();
46
47
        return $users;
48
    }
49
}
50