Completed
Push — master ( 98a062...441031 )
by Ryan
10:10
created

FieldRouter::route()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 36
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 25
nc 4
nop 3
dl 0
loc 36
rs 8.8571
c 0
b 0
f 0
1
<?php namespace Anomaly\Streams\Platform\Field;
2
3
use Anomaly\Streams\Platform\Addon\Addon;
4
use Illuminate\Routing\Router;
5
6
/**
7
 * Class FieldRouter
8
 *
9
 * @link   http://pyrocms.com/
10
 * @author PyroCMS, Inc. <[email protected]>
11
 * @author Ryan Thompson <[email protected]>
12
 */
13
class FieldRouter
14
{
15
16
    /**
17
     * The router instance.
18
     *
19
     * @var Router
20
     */
21
    protected $router;
22
23
    /**
24
     * Create a new FieldRouter instance.
25
     *
26
     * @param Router $router
27
     */
28
    public function __construct(Router $router)
29
    {
30
        $this->router = $router;
31
    }
32
33
    /**
34
     * Register field routes.
35
     *
36
     * @param Addon $addon
37
     * @param       $controller
38
     * @param null  $prefix
39
     */
40
    public function route(Addon $addon, $controller, $prefix = null)
41
    {
42
        $prefix = $prefix ?: 'admin/' . $addon->getSlug();
43
44
        $routes = [
45
            $prefix . '/fields'             => [
46
                'as'             => $addon->getNamespace('fields.index'),
47
                'uses'           => $controller . '@index',
48
                'streams::addon' => $addon->getNamespace(),
49
            ],
50
            $prefix . '/fields/choose'      => [
51
                'as'             => $addon->getNamespace('fields.choose'),
52
                'uses'           => $controller . '@choose',
53
                'streams::addon' => $addon->getNamespace(),
54
            ],
55
            $prefix . '/fields/create'      => [
56
                'as'             => $addon->getNamespace('fields.create'),
57
                'uses'           => $controller . '@create',
58
                'streams::addon' => $addon->getNamespace(),
59
            ],
60
            $prefix . '/fields/edit/{id}'   => [
61
                'as'             => $addon->getNamespace('fields.edit'),
62
                'uses'           => $controller . '@edit',
63
                'streams::addon' => $addon->getNamespace(),
64
            ],
65
            $prefix . '/fields/change/{id}' => [
66
                'as'             => $addon->getNamespace('fields.change'),
67
                'uses'           => $controller . '@change',
68
                'streams::addon' => $addon->getNamespace(),
69
            ],
70
        ];
71
72
        foreach ($routes as $uri => $route) {
73
            $this->router->any($uri, $route);
74
        }
75
    }
76
}
77