Passed
Push — master ( 72576e...ceb7cb )
by Paul
04:15
created

UserController   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 77.78%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 17
c 1
b 0
f 0
dl 0
loc 37
ccs 14
cts 18
cp 0.7778
rs 10
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A show() 0 11 2
A index() 0 22 3
1
<?php
2
3
namespace Devpri\Tinre\Http\Controllers\Api\V1;
4
5
use Devpri\Tinre\Http\Controllers\Controller;
6
use Devpri\Tinre\Http\Resources\Api\V1\User as UserResource;
7
use Devpri\Tinre\Models\User;
8
use Illuminate\Database\Eloquent\Builder;
9
use Illuminate\Http\Request;
10
11
class UserController extends Controller
12
{
13 3
    public function index(Request $request)
14
    {
15 3
        $user = $request->user();
16
17 3
        if ($user->cant('viewAny', User::class)) {
18 2
            abort(401);
19
        }
20
21 1
        $search = $request->search;
22
23 1
        $query = User::query();
24
25 1
        if ($search) {
26
            $query->where(function (Builder $query) use ($search) {
27
                $query->where('name', 'LIKE', "%{$search}%")
28
                    ->orWhere('email', 'LIKE', "%{$search}%");
29
            });
30
        }
31
32 1
        $users = $query->orderBy('created_at', 'DESC')->paginate(30);
33
34 1
        return UserResource::collection($users)->additional(['authorized_actions' => (new User)->authorizedActions()]);
35
    }
36
37 3
    public function show(Request $request, $id)
38
    {
39 3
        $authUser = $request->user();
40
41 3
        $user = User::where('id', $id)->firstOrFail();
42
43 3
        if ($authUser->cant('view', $user)) {
44
            abort(401);
45
        }
46
47 3
        return new UserResource($user);
48
    }
49
}
50