Completed
Push — develop-3.0 ( 5ab583...f20237 )
by Mohamed
06:33
created

UserScopes   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
c 0
b 0
f 0
lcom 0
cbo 2
dl 0
loc 28
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A scopeForUser() 0 4 1
A scopeInProjects() 0 4 1
1
<?php
2
3
/*
4
 * This file is part of the Tinyissue package.
5
 *
6
 * (c) Mohamed Alsharaf <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Tinyissue\Model\Project;
13
14
use Illuminate\Database\Eloquent\Builder;
15
use Tinyissue\Model;
16
17
/**
18
 * UserScopes is trait class containing the model scope methods.
19
 *
20
 * @author Mohamed Alsharaf <[email protected]>
21
 *
22
 * @property static $this
23
 */
24
trait UserScopes
25
{
26
    /**
27
     * Filter for project user by user id.
28
     *
29
     * @param Builder    $query
30
     * @param Model\User $user
31
     *
32
     * @return Builder
33
     */
34
    public function scopeForUser(Builder $query, Model\User $user)
35
    {
36
        return $query->where('user_id', '=', $user->id);
37
    }
38
39
    /**
40
     * Filter for project users in list or project ids.
41
     *
42
     * @param Builder $query
43
     * @param array   $projectIds
44
     *
45
     * @return Builder
46
     */
47
    public function scopeInProjects(Builder $query, array $projectIds)
48
    {
49
        return $query->whereIn('project_id', $projectIds);
50
    }
51
}
52