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

AssignmentRouter::route()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 31
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

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