RelationsController   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 6
dl 0
loc 39
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 14 1
A delete() 0 10 1
1
<?php
2
3
namespace Mtolhuys\LaravelSchematics\Http\Controllers;
4
5
use Mtolhuys\LaravelSchematics\Http\Controllers\Traits\HasOptionalActions;
6
use Mtolhuys\LaravelSchematics\Actions\Relation\DeleteRelationAction;
7
use Mtolhuys\LaravelSchematics\Actions\Relation\CreateRelationAction;
8
use Mtolhuys\LaravelSchematics\Http\Requests\CreateRelationRequest;
9
use Mtolhuys\LaravelSchematics\Http\Requests\DeleteRelationRequest;
10
use Illuminate\Contracts\Routing\ResponseFactory;
11
use Symfony\Component\HttpFoundation\Response;
12
use Illuminate\Support\Facades\Cache;
13
use Illuminate\Routing\Controller;
14
use ReflectionException;
15
16
class RelationsController extends Controller
17
{
18
    use HasOptionalActions;
19
20
    /**
21
     * @param CreateRelationRequest $request
22
     * @return array
23
     * @throws ReflectionException
24
     */
25
    public function create(CreateRelationRequest $request)
26
    {
27
        $result = (new CreateRelationAction())->execute($request);
28
29
        $this->optionalActions($request);
30
31
        Cache::forget('schematics');
32
33
        $relation = $request->all();
34
        $relation['method']['file'] = $result->file;
35
        $relation['method']['line'] = $result->line;
36
37
        return $relation;
38
    }
39
40
    /**
41
     * @param DeleteRelationRequest $request
42
     * @return ResponseFactory|\Illuminate\Http\Response|Response
43
     */
44
    public function delete(DeleteRelationRequest $request)
45
    {
46
        (new DeleteRelationAction())->execute($request);
47
48
        $this->optionalActions($request);
49
50
        Cache::forget('schematics');
51
52
        return response('Relation removed', 200);
53
    }
54
}
55