ModelsController::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Mtolhuys\LaravelSchematics\Http\Controllers;
4
5
use Mtolhuys\LaravelSchematics\Http\Controllers\Traits\HasOptionalActions;
6
use Mtolhuys\LaravelSchematics\Http\Requests\EditModelRequest;
7
use Mtolhuys\LaravelSchematics\Http\Requests\CreateModelRequest;
8
use Mtolhuys\LaravelSchematics\Http\Requests\DeleteModelRequest;
9
use Mtolhuys\LaravelSchematics\Actions\Model\CreateModelAction;
10
use Mtolhuys\LaravelSchematics\Actions\Model\DeleteModelAction;
11
use Mtolhuys\LaravelSchematics\Actions\Model\EditModelAction;
12
use Illuminate\Support\Facades\Cache;
13
use Illuminate\Routing\Controller;
14
use Illuminate\Http\Response;
15
use ReflectionException;
16
17
class ModelsController extends Controller
18
{
19
    use HasOptionalActions;
20
21
    /**
22
     * @param $request
23
     * @return Response
24
     */
25
    public function create(CreateModelRequest $request)
26
    {
27
        (new CreateModelAction())->execute($request);
28
29
        $this->optionalActions($request);
30
31
        Cache::forget('schematics');
32
33
        return response('Model created', 200);
34
    }
35
36
    /**
37
     * @param DeleteModelRequest $request
38
     * @return Response
39
     * @throws ReflectionException
40
     */
41
    public function delete(DeleteModelRequest $request)
42
    {
43
        (new DeleteModelAction())->execute($request);
44
45
        $this->optionalActions($request);
46
47
        Cache::forget('schematics');
48
49
        return response('Model deleted', 200);
50
    }
51
52
    /**
53
     * @return array
54
     */
55
    public function columns(): array
56
    {
57
        $model = request('model');
58
        $model = new $model;
59
        $table = $model->getTable();
60
        $safeTableName = \DB::getQueryGrammar()->wrap($table);
61
        
62
        return \Schema::hasTable($table) ? \DB::select("describe $safeTableName") : [];
63
    }
64
65
    /**
66
     * @param EditModelRequest $request
67
     * @return Response
68
     * @throws ReflectionException
69
     */
70
    public function edit(EditModelRequest $request)
71
    {
72
        (new EditModelAction())->execute($request);
73
74
        $this->optionalActions($request);
75
76
        Cache::forget('schematics');
77
78
        return response('Model changed', 200);
79
    }
80
}
81