Issues (124)

src/Http/Controllers/TableController.php (3 issues)

Severity
1
<?php
2
3
namespace CodexShaper\DBM\Http\Controllers;
4
5
use CodexShaper\DBM\Database\Schema\Table;
6
use CodexShaper\DBM\Facades\Manager as DBM;
7
use Illuminate\Http\Request;
8
9
class TableController extends Controller
10
{
11
    /**
12
     * Get all Tables.
13
     *
14
     * @return \Illuminate\Http\JsonResponse
15
     */
16
    public function all(Request $request)
17
    {
18
        if ($request->ajax()) {
19
            if (($response = DBM::authorize('database.browse')) !== true) {
0 ignored issues
show
The condition $response = CodexShaper\...abase.browse') !== true is always true.
Loading history...
20
                return $response;
21
            }
22
23
            try {
24
                $perPage = (int) $request->perPage;
25
                $query = $request->q;
26
                $tables = Table::paginate($perPage, null, [], $query);
27
                $userPermissions = DBM::userPermissions();
28
29
                $newTables = [];
30
31
                foreach ($tables as $table) {
32
                    $newTables[] = $table;
33
                }
34
35
                return response()->json([
36
                    'success' => true,
37
                    'tables' => $newTables,
38
                    'pagination' => $tables,
39
                    'userPermissions' => $userPermissions,
40
                    'coreTables' => config('dbm.core.tables', []),
41
                    'collation' => config('dbm.collation', 'utf8mb4_unicode_ci'),
42
                ]);
43
            } catch (\Exception $e) {
44
                return response()->json([
45
                    'success' => false,
46
                    'errors' => [$e->getMessage()],
47
                ], 400);
48
            }
49
        }
50
51
        return response()->json(['success' => false]);
52
    }
53
54
    /**
55
     * Get Table Details.
56
     *
57
     * @return \Illuminate\Http\JsonResponse
58
     */
59
    public function getTable(Request $request)
60
    {
61
        if ($request->ajax()) {
62
            if (($response = DBM::authorize('database.update')) !== true) {
0 ignored issues
show
The condition $response = CodexShaper\...abase.update') !== true is always true.
Loading history...
63
                return $response;
64
            }
65
66
            $userPermissions = DBM::userPermissions();
67
            $table = Table::getTable($request->name);
68
            $object = DBM::Object()->where('name', $request->name)->first();
69
            $isCrudExists = false;
70
            $columns = $table['columns'];
71
            $newColumns = [];
72
73
            if ($object) {
74
                $fields = $object->fields()->orderBy('order', 'ASC')->get();
75
                if (count($fields) > 0) {
76
                    foreach ($fields as $field) {
77
                        foreach ($columns as $key => $column) {
78
                            if ($field->name == $column->name) {
79
                                // $column->id    = $field->id;
80
                                $column->order = $field->order;
81
                                $newColumns[] = $column;
82
                                unset($columns[$key]);
83
                                $columns = array_values($columns);
84
                            }
85
                        }
86
                    }
87
88
                    $table['columns'] = $newColumns;
89
                    // $columns          = $newColumns;
90
                    $isCrudExists = true;
91
                }
92
            }
93
94
            return response()->json([
95
                'success' => true,
96
                'table' => $table,
97
                'isCrudExists' => $isCrudExists,
98
                'userPermissions' => $userPermissions,
99
                'templates' => DBM::templates(),
100
            ]);
101
        }
102
103
        return response()->json(['success' => false]);
104
    }
105
106
    /**
107
     * Get Table Columns.
108
     *
109
     * @return \Illuminate\Http\JsonResponse
110
     */
111
    public function getTableColumns(Request $request)
112
    {
113
        if ($request->ajax()) {
114
            if (($response = DBM::authorize('crud.update')) !== true) {
0 ignored issues
show
The condition $response = CodexShaper\...'crud.update') !== true is always true.
Loading history...
115
                return $response;
116
            }
117
118
            $table = Table::getTable($request->table);
119
            $fields = $table['columns'];
120
121
            return response()->json(['success' => true, 'fields' => $fields]);
122
        }
123
124
        return response()->json(['success' => false]);
125
    }
126
}
127