TokenGuard::user()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 21
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 11
c 1
b 0
f 0
nc 5
nop 0
dl 0
loc 21
ccs 12
cts 12
cp 1
crap 5
rs 9.6111
1
<?php
2
3
namespace Devpri\Tinre\Guards;
4
5
use Devpri\Tinre\Models\AccessToken;
6
use Illuminate\Http\Request;
7
8
class TokenGuard
9
{
10
    protected $request;
11
12 8
    public function __construct(Request $request)
13
    {
14 8
        $this->request = $request;
15 8
    }
16
17 8
    public function user()
18
    {
19 8
        if ($token = $this->request->bearerToken()) {
20 4
            $accessToken = AccessToken::findToken($token);
21
22 4
            if (! $accessToken) {
23 1
                return;
24
            }
25
26 3
            $user = $accessToken->user;
27
28 3
            if (! $user->active) {
29 1
                return;
30
            }
31
32 2
            if (! $user->hasApiAccess()) {
33 1
                return;
34
            }
35
36 1
            return $user->withAccessToken(
37 1
                tap($accessToken->forceFill(['last_used_at' => now()]))->save()
38
            );
39
        }
40 4
    }
41
}
42