-
-
Notifications
You must be signed in to change notification settings - Fork 87
/
moonshine.php
113 lines (95 loc) · 4.97 KB
/
moonshine.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
use Illuminate\Support\Facades\Route;
use MoonShine\Http\Controllers\AsyncController;
use MoonShine\Http\Controllers\AttachmentController;
use MoonShine\Http\Controllers\AuthenticateController;
use MoonShine\Http\Controllers\CrudController;
use MoonShine\Http\Controllers\GlobalSearchController;
use MoonShine\Http\Controllers\HandlerController;
use MoonShine\Http\Controllers\HomeController;
use MoonShine\Http\Controllers\NotificationController;
use MoonShine\Http\Controllers\PageController;
use MoonShine\Http\Controllers\ProfileController;
use MoonShine\Http\Controllers\RelationModelFieldController;
use MoonShine\Http\Controllers\SocialiteController;
use MoonShine\Http\Controllers\UpdateFieldController;
Route::group(moonshine()->configureRoutes(), static function (): void {
Route::middleware(config('moonshine.auth.middleware', []))->group(function (): void {
Route::prefix('resource/{resourceUri}')->group(function (): void {
Route::delete('crud', [CrudController::class, 'massDelete'])->name('crud.massDelete');
Route::resource('crud', CrudController::class)
->parameter('crud', 'resourceItem')
->only(['store', 'update', 'destroy']);
Route::any('handler/{handlerUri}', HandlerController::class)->name('handler');
Route::get('{pageUri}', PageController::class)->name('resource.page');
});
Route::prefix('column')->controller(UpdateFieldController::class)->group(function (): void {
Route::put('resource/{resourceUri}/{resourceItem}', 'column')
->name('column.resource.update-column');
Route::put('relation/{resourceUri}/{pageUri}/{resourceItem}', 'relation')
->name('column.relation.update-column');
});
Route::get(
config('moonshine.route.single_page_prefix', 'page') . "/{pageUri}",
PageController::class
)->name('page');
Route::get(
'search',
GlobalSearchController::class
)->name('global-search');
Route::prefix('relation/{pageUri}/{resourceUri?}/{resourceItem?}')->controller(RelationModelFieldController::class)->group(
function (): void {
Route::get('/has-many-form', 'hasManyForm')->name('relation.has-many-form');
Route::get('/', 'search')->name('relation.search');
}
);
Route::prefix('relations/{pageUri}')->controller(RelationModelFieldController::class)->group(
function (): void {
Route::get('/{resourceUri?}/{resourceItem?}', 'searchRelations')->name('relation.search-relations');
}
);
Route::get('/', HomeController::class)->name('index');
Route::post('/attachments', AttachmentController::class)->name('attachments');
Route::controller(NotificationController::class)
->prefix('notifications')
->as('notifications.')
->group(static function (): void {
Route::get('/', 'readAll')->name('readAll');
Route::get('/{notification}', 'read')->name('read');
});
Route::controller(AsyncController::class)
->prefix('async')
->as('async.')
->group(function (): void {
Route::get('table/{pageUri}/{resourceUri?}', 'table')
->name('table');
Route::get('component/{pageUri}/{resourceUri?}', 'component')
->name('component');
Route::any('method/{pageUri}/{resourceUri?}', 'method')
->name('method');
Route::post('reactive/{pageUri}/{resourceUri?}/{resourceItem?}', 'reactive')
->name('reactive');
});
});
if (config('moonshine.auth.enable', true)) {
Route::controller(AuthenticateController::class)
->group(static function (): void {
Route::get('/login', 'login')->name('login');
Route::post('/authenticate', 'authenticate')->name('authenticate');
Route::get('/logout', 'logout')->name('logout');
});
Route::controller(SocialiteController::class)
->prefix('socialite')
->as('socialite.')
->group(static function (): void {
Route::get('/{driver}/redirect', 'redirect')->name('redirect');
Route::get('/{driver}/callback', 'callback')->name('callback');
});
Route::post('/profile', [ProfileController::class, 'store'])
->middleware(config('moonshine.auth.middleware', []))
->name('profile.store');
}
Route::fallback(static function (): never {
oops404();
});
});