Completed
Push — master ( 7b1812...72843d )
by CodexShaper
05:03
created

UserController::logout()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 20
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 11
c 1
b 0
f 0
nc 6
nop 1
dl 0
loc 20
ccs 0
cts 16
cp 0
crap 20
rs 9.9
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
use Illuminate\Support\Facades\Route;
11
12
class UserController extends Controller
13
{
14
    public function showLoginForm()
15
    {
16
        return view('dbm::admin');
17
    }
18
19
    public function login(Request $request)
20
    {
21
        if ($request->ajax()) {
22
            try {
23
                $credentials = [
24
                    'email'    => $request->data['email'],
25
                    'password' => $request->data['password'],
26
                ];
27
28
                if (Auth::attempt($credentials)) {
29
                    $user   = Auth::user();
30
                    $expiry = Config::get('dbm.auth.token.expiry');
31
                    if ($user->tokens()->delete()) {
32
                        return response()->json([
33
                            'success' => true,
34
                            'user'    => $user,
35
                            'token'   => $user->createToken('DBM')->accessToken,
36
                            'expiry'  => $expiry,
37
                        ]);
38
                    }
39
40
                }
41
            } catch (\Exception $e) {
42
                return response()->json([
43
                    'success' => false,
44
                    'errors'  => [$e->getMessage()],
45
                ], 400);
46
            }
47
        }
48
        return response()->json(["success" => false, "error" => "Unauthorised"], 401);
49
50
    }
51
52
    public function getPersonalAccessToken(Request $request)
53
    {
54
        try {
55
56
            $tokenName = $request->name != "" ? $request->name : 'DBM';
57
58
            $status   = 401;
59
            $response = ['error' => 'Unauthorised'];
60
61
            if (Auth::attempt($request->only(['email', 'password']))) {
62
63
                $status   = 200;
64
                $response = [
65
                    'success' => true,
66
                    'token'   => Auth::user()->createToken($tokenName)->accessToken,
67
                ];
68
            }
69
70
            return response()->json($response, $status);
71
        } catch (\Exception $e) {
72
            return response()->json([
73
                'success' => false,
74
                'errors'  => [$e->getMessage()],
75
            ], 400);
76
        }
77
    }
78
79
    /*
80
81
    public function logout(Request $request)
82
    {
83
    if ($request->ajax()) {
84
    // return response()->json(['success' => false]);
85
    try {
86
    $token = $request->user()->token();
87
    if ($token->revoke()) {
88
    return response()->json(['success' => true, 'token' => $token]);
89
    }
90
91
    } catch (\Exception $e) {
92
    return response()->json([
93
    'success' => false,
94
    'errors'  => [$e->getMessage()],
95
    ], 400);
96
    }
97
98
    }
99
100
    return response()->json(['success' => false, 'error' => 'Unauthorized']);
101
    }
102
     */
103
104
    public function api()
105
    {
106
        if (Auth::guest()) {
107
            return Route::has('login') ? redirect(route('login')) : Response::view('dbm::errors.404', [], 404);
108
        }
109
110
        return view('dbm::api');
111
    }
112
113
}
114