Completed
Push — develop ( 9af3f8...36c8fb )
by Abdelrahman
12:51
created

RoutesController::index()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 12
rs 9.4285
cc 2
eloc 8
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Console\Http\Controllers\Adminarea;
6
7
use Closure;
8
use Illuminate\Support\Str;
9
use Cortex\Console\DataTables\Adminarea\RoutesDataTable;
10
use Cortex\Foundation\Http\Controllers\AuthorizedController;
11
12
class RoutesController extends AuthorizedController
13
{
14
    /**
15
     * {@inheritdoc}
16
     */
17
    protected $resource = 'routes';
18
19
    /**
20
     * {@inheritdoc}
21
     */
22
    public function authorizeResource($model, $parameter = null, array $options = [], $request = null): void
23
    {
24
        $middleware = [];
25
        $parameter = $parameter ?: Str::snake(class_basename($model));
26
27
        foreach ($this->mapResourceAbilities() as $method => $ability) {
28
            $modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter;
29
30
            $middleware["can:{$ability}-{$modelName},{$modelName}"][] = $method;
31
        }
32
33
        foreach ($middleware as $middlewareName => $methods) {
34
            $this->middleware($middlewareName, $options)->only($methods);
35
        }
36
    }
37
38
    /**
39
     * List all routes.
40
     *
41
     * @param \Cortex\Console\DataTables\Adminarea\RoutesDataTable $routesDataTable
42
     *
43
     * @return \Illuminate\Http\JsonResponse|\Illuminate\View\View
44
     */
45
    public function index(RoutesDataTable $routesDataTable)
46
    {
47
        $middlewareClosure = function ($middleware) {
48
            return $middleware instanceof Closure ? 'Closure' : $middleware;
49
        };
50
51
        return $routesDataTable->with([
52
            'id' => 'adminarea-routes-index-table',
53
            'middlewareClosure' => $middlewareClosure,
54
            'phrase' => trans('cortex/console::common.routes'),
55
        ])->render('cortex/foundation::adminarea.pages.datatable');
56
    }
57
}
58