]> BookStack Code Mirror - bookstack/blob - app/Http/routes.php
aedfca9bce9521f23741df2933dde82aae0669a1
[bookstack] / app / Http / routes.php
1 <?php
2
3 Route::get('/test', function() {
4     // TODO - remove this
5     $service = new \BookStack\Services\LdapService();
6     dd($service->getUserDetails('ksmith'));
7 });
8
9 // Authenticated routes...
10 Route::group(['middleware' => 'auth'], function () {
11
12     Route::group(['prefix' => 'books'], function () {
13
14         // Books
15         Route::get('/', 'BookController@index');
16         Route::get('/create', 'BookController@create');
17         Route::post('/', 'BookController@store');
18         Route::get('/{slug}/edit', 'BookController@edit');
19         Route::put('/{slug}', 'BookController@update');
20         Route::delete('/{id}', 'BookController@destroy');
21         Route::get('/{slug}/sort-item', 'BookController@getSortItem');
22         Route::get('/{slug}', 'BookController@show');
23         Route::get('/{slug}/delete', 'BookController@showDelete');
24         Route::get('/{bookSlug}/sort', 'BookController@sort');
25         Route::put('/{bookSlug}/sort', 'BookController@saveSort');
26
27
28         // Pages
29         Route::get('/{bookSlug}/page/create', 'PageController@create');
30         Route::post('/{bookSlug}/page', 'PageController@store');
31         Route::get('/{bookSlug}/page/{pageSlug}', 'PageController@show');
32         Route::get('/{bookSlug}/page/{pageSlug}/edit', 'PageController@edit');
33         Route::get('/{bookSlug}/page/{pageSlug}/delete', 'PageController@showDelete');
34         Route::put('/{bookSlug}/page/{pageSlug}', 'PageController@update');
35         Route::delete('/{bookSlug}/page/{pageSlug}', 'PageController@destroy');
36
37         //Revisions
38         Route::get('/{bookSlug}/page/{pageSlug}/revisions', 'PageController@showRevisions');
39         Route::get('/{bookSlug}/page/{pageSlug}/revisions/{revId}', 'PageController@showRevision');
40         Route::get('/{bookSlug}/page/{pageSlug}/revisions/{revId}/restore', 'PageController@restoreRevision');
41
42         // Chapters
43         Route::get('/{bookSlug}/chapter/{chapterSlug}/create-page', 'PageController@create');
44         Route::get('/{bookSlug}/chapter/create', 'ChapterController@create');
45         Route::post('/{bookSlug}/chapter/create', 'ChapterController@store');
46         Route::get('/{bookSlug}/chapter/{chapterSlug}', 'ChapterController@show');
47         Route::put('/{bookSlug}/chapter/{chapterSlug}', 'ChapterController@update');
48         Route::get('/{bookSlug}/chapter/{chapterSlug}/edit', 'ChapterController@edit');
49         Route::get('/{bookSlug}/chapter/{chapterSlug}/delete', 'ChapterController@showDelete');
50         Route::delete('/{bookSlug}/chapter/{chapterSlug}', 'ChapterController@destroy');
51
52     });
53
54
55     // Users
56     Route::get('/users', 'UserController@index');
57     Route::get('/users/create', 'UserController@create');
58     Route::get('/users/{id}/delete', 'UserController@delete');
59     Route::post('/users/create', 'UserController@store');
60     Route::get('/users/{id}', 'UserController@edit');
61     Route::put('/users/{id}', 'UserController@update');
62     Route::delete('/users/{id}', 'UserController@destroy');
63
64     // Image routes
65     Route::group(['prefix' => 'images'], function() {
66         // Get for user images
67         Route::get('/user/all', 'ImageController@getAllForUserType');
68         Route::get('/user/all/{page}', 'ImageController@getAllForUserType');
69         // Standard get, update and deletion for all types
70         Route::get('/thumb/{id}/{width}/{height}/{crop}', 'ImageController@getThumbnail');
71         Route::put('/update/{imageId}', 'ImageController@update');
72         Route::post('/{type}/upload', 'ImageController@uploadByType');
73         Route::get('/{type}/all', 'ImageController@getAllByType');
74         Route::get('/{type}/all/{page}', 'ImageController@getAllByType');
75         Route::delete('/{imageId}', 'ImageController@destroy');
76     });
77
78     // Links
79     Route::get('/link/{id}', 'PageController@redirectFromLink');
80
81     // Search
82     Route::get('/search/all', 'SearchController@searchAll');
83     Route::get('/search/book/{bookId}', 'SearchController@searchBook');
84
85     // Other Pages
86     Route::get('/', 'HomeController@index');
87     Route::get('/home', 'HomeController@index');
88
89     // Settings
90     Route::get('/settings', 'SettingController@index');
91     Route::post('/settings', 'SettingController@update');
92
93 });
94
95 // Login using social authentication
96 Route::get('/login/service/{socialDriver}', 'Auth\AuthController@getSocialLogin');
97 Route::get('/login/service/{socialDriver}/callback', 'Auth\AuthController@socialCallback');
98 Route::get('/login/service/{socialDriver}/detach', 'Auth\AuthController@detachSocialAccount');
99
100 // Login/Logout routes
101 Route::get('/login', 'Auth\AuthController@getLogin');
102 Route::post('/login', 'Auth\AuthController@postLogin');
103 Route::get('/logout', 'Auth\AuthController@getLogout');
104 Route::get('/register', 'Auth\AuthController@getRegister');
105 Route::get('/register/confirm', 'Auth\AuthController@getRegisterConfirmation');
106 Route::get('/register/confirm/awaiting', 'Auth\AuthController@showAwaitingConfirmation');
107 Route::post('/register/confirm/resend', 'Auth\AuthController@resendConfirmation');
108 Route::get('/register/confirm/{token}', 'Auth\AuthController@confirmEmail');
109 Route::get('/register/confirm/{token}/email', 'Auth\AuthController@viewConfirmEmail');
110 Route::get('/register/service/{socialDriver}', 'Auth\AuthController@socialRegister');
111 Route::post('/register', 'Auth\AuthController@postRegister');
112
113 // Password reset link request routes...
114 Route::get('/password/email', 'Auth\PasswordController@getEmail');
115 Route::post('/password/email', 'Auth\PasswordController@postEmail');
116 // Password reset routes...
117 Route::get('/password/reset/{token}', 'Auth\PasswordController@getReset');
118 Route::post('/password/reset', 'Auth\PasswordController@postReset');