UserAdminManager   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Test Coverage

Coverage 90%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
eloc 17
c 1
b 0
f 0
dl 0
loc 58
ccs 18
cts 20
cp 0.9
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A routes() 0 13 3
A indexPage() 0 7 2
1
<?php
2
3
namespace UserAdmin;
4
5
use Illuminate\Contracts\Foundation\Application;
6
use Illuminate\Support\Facades\Route;
7
use UserAdmin\Http\Controllers\BulkActionController;
8
use UserAdmin\Http\Controllers\ListController;
9
use UserAdmin\IndexPage\IndexPageManager;
10
11
class UserAdminManager
12
{
13
14
    /**
15
     * The application instance.
16
     */
17
    protected Application $app;
18
19
    /**
20
     * Index page manager instance.
21
     */
22
    protected ?IndexPageManager $indexPage = null;
23
24
    /**
25
     * Create a new instance.
26
     *
27
     * @param Application $app
28
     */
29 7
    public function __construct(Application $app)
30
    {
31 7
        $this->app = $app;
32 7
    }
33
34
    /**
35
     * Initialize default routes.
36
     *
37
     * @param \Closure|null $callback
38
     * @param \Closure|null $additionalRoutes
39
     */
40 7
    public function routes(?\Closure $callback = null, ?\Closure $additionalRoutes = null)
41
    {
42 7
        $router = Route::prefix('user-admin-index-page');
43 7
        if ($callback) {
44
            $callback($router);
45
        }
46 7
        $router->group(function () use ($additionalRoutes) {
47 7
            Route::get('list', ListController::class)
48 7
                 ->name('user-admin-index-page.list');
49 7
            Route::get('bulk-action', BulkActionController::class)
50 7
                 ->name('user-admin-index-page.bulk-action');
51 7
            if ($additionalRoutes) {
52
                $additionalRoutes();
53
            }
54 7
        });
55 7
    }
56
57
    /**
58
     * Get index page manager.
59
     *
60
     * @return IndexPageManager
61
     */
62 7
    public function indexPage(): IndexPageManager
63
    {
64 7
        if (!$this->indexPage) {
65 7
            $this->indexPage = new IndexPageManager($this->app);
66
        }
67
68 7
        return $this->indexPage;
69
    }
70
}
71