Completed
Push — master ( 9153e9...1f19ca )
by CodexShaper
05:33
created

UserController::getPersonalAccessToken()   A

Complexity

Conditions 4
Paths 12

Size

Total Lines 24
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 15
c 1
b 0
f 0
nc 12
nop 1
dl 0
loc 24
ccs 0
cts 19
cp 0
crap 20
rs 9.7666
1
<?php
2
3
namespace CodexShaper\DBM\Http\Controllers;
4
5
use CodexShaper\DBM\Facades\Manager as DBM;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Facades\Auth;
8
use Illuminate\Support\Facades\Config;
9
use Illuminate\Support\Facades\Response;
10
11
class UserController extends Controller
12
{
13
    /**
14
     * Show login form
15
     *
16
     * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory
17
     */
18
    public function showLoginForm()
19
    {
20
        return view('dbm::admin');
21
    }
22
    /**
23
     * Login User for API
24
     *
25
     * @return \Illuminate\Http\JsonResponse
26
     */
27
    public function login(Request $request)
28
    {
29
        if ($request->ajax()) {
30
            try {
31
                $credentials = [
32
                    'email'    => $request->data['email'],
33
                    'password' => $request->data['password'],
34
                ];
35
36
                if (Auth::attempt($credentials)) {
37
                    $user   = Auth::user();
38
                    $expiry = Config::get('dbm.auth.token.expiry');
39
                    if (count($user->tokens) > 0) {
0 ignored issues
show
Bug introduced by
Accessing tokens on the interface Illuminate\Contracts\Auth\Authenticatable suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
40
                        $user->tokens()->delete();
41
                    }
42
                    return response()->json([
43
                        'success' => true,
44
                        'user'    => $user,
45
                        'token'   => $user->createToken('DBM')->accessToken,
46
                        'expiry'  => $expiry,
47
                    ]);
48
49
                }
50
            } catch (\Exception $e) {
51
                return response()->json([
52
                    'success' => false,
53
                    'errors'  => [$e->getMessage()],
54
                ], 400);
55
            }
56
        }
57
        return response()->json(["success" => false, "error" => "Unauthorised"], 401);
58
59
    }
60
}
61