MenuController   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 27
dl 0
loc 80
ccs 0
cts 43
cp 0
rs 10
c 1
b 0
f 0
wmc 8

4 Methods

Rating   Name   Duplication   Size   Complexity  
A showLoginForm() 0 3 1
A get() 0 18 3
A generateError() 0 6 1
A validation() 0 18 3
1
<?php
2
3
namespace CodexShaper\DBM\Http\Controllers;
4
5
use CodexShaper\DBM\Facades\Manager as DBM;
6
use Illuminate\Support\Facades\Response;
7
use Illuminate\Support\Facades\Validator;
8
9
class MenuController extends Controller
10
{
11
    /**
12
     * Show login form.
13
     *
14
     * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory
15
     */
16
    public function showLoginForm()
17
    {
18
        return view('dbm::admin');
19
    }
20
21
    /**
22
     * Login User for API.
23
     *
24
     * @return \Illuminate\Http\JsonResponse
25
     */
26
    public function get()
27
    {
28
        // if ($request->ajax()) {
29
        try {
30
            if ($menu = DBM::Menu()->where('slug', 'admin')->first()) {
31
                $menus = DBM::MenuItem()::with('childrens')
32
                    ->where('menu_id', $menu->id)
33
                    ->whereNull('parent_id')
34
                    ->orderBy('order', 'asc')
35
                    ->get();
36
37
                return response()->json([
38
                    'success' => true,
39
                    'menus' => $menus,
40
                ]);
41
            }
42
        } catch (\Exception $e) {
43
            $this->generateError([$e->getMessage()]);
44
        }
45
        // }
46
        // return response()->json(["success" => false, "error" => "Unauthorised"], 401);
47
    }
48
49
    /**
50
     * Validate Credentials.
51
     *
52
     * @param array $data
53
     *
54
     * @return \Illuminate\Http\JsonResponse|true
55
     */
56
    public function validation($data)
57
    {
58
        $validator = Validator::make($data, [
59
            'email' => 'required|email',
60
            'password' => 'required',
61
62
        ]);
63
64
        if ($validator->fails()) {
65
            $errors = [];
66
            foreach ($validator->errors()->all() as $error) {
67
                $errors[] = $error;
68
            }
69
70
            return $this->generateError($errors);
71
        }
72
73
        return true;
74
    }
75
76
    /**
77
     * Generate errors and return response.
78
     *
79
     * @param array $errors
80
     *
81
     * @return \Illuminate\Http\JsonResponse
82
     */
83
    public function generateError($errors)
84
    {
85
        return response()->json([
86
            'success' => false,
87
            'errors' => $errors,
88
        ], 400);
89
    }
90
}
91