]> BookStack Code Mirror - bookstack/blob - routes/api.php
Merge branch 'development' of github.com:LM-Nishant/BookStack into LM-Nishant-development
[bookstack] / routes / api.php
1 <?php
2
3 /**
4  * Routes for the BookStack API.
5  * Routes have a uri prefix of /api/.
6  * Controllers all end with "ApiController"
7  */
8
9 use BookStack\Activity\Controllers\AuditLogApiController;
10 use BookStack\Api\ApiDocsController;
11 use BookStack\App\SystemApiController;
12 use BookStack\Entities\Controllers as EntityControllers;
13 use BookStack\Exports\Controllers as ExportControllers;
14 use BookStack\Permissions\ContentPermissionApiController;
15 use BookStack\Search\SearchApiController;
16 use BookStack\Uploads\Controllers\AttachmentApiController;
17 use BookStack\Uploads\Controllers\ImageGalleryApiController;
18 use BookStack\Users\Controllers\RoleApiController;
19 use BookStack\Users\Controllers\UserApiController;
20 use Illuminate\Support\Facades\Route;
21
22 Route::get('docs.json', [ApiDocsController::class, 'json']);
23
24 Route::get('attachments', [AttachmentApiController::class, 'list']);
25 Route::post('attachments', [AttachmentApiController::class, 'create']);
26 Route::get('attachments/{id}', [AttachmentApiController::class, 'read']);
27 Route::put('attachments/{id}', [AttachmentApiController::class, 'update']);
28 Route::delete('attachments/{id}', [AttachmentApiController::class, 'delete']);
29
30 Route::get('books', [EntityControllers\BookApiController::class, 'list']);
31 Route::post('books', [EntityControllers\BookApiController::class, 'create']);
32 Route::get('books/{id}', [EntityControllers\BookApiController::class, 'read']);
33 Route::put('books/{id}', [EntityControllers\BookApiController::class, 'update']);
34 Route::delete('books/{id}', [EntityControllers\BookApiController::class, 'delete']);
35
36 Route::get('books/{id}/export/html', [ExportControllers\BookExportApiController::class, 'exportHtml']);
37 Route::get('books/{id}/export/pdf', [ExportControllers\BookExportApiController::class, 'exportPdf']);
38 Route::get('books/{id}/export/plaintext', [ExportControllers\BookExportApiController::class, 'exportPlainText']);
39 Route::get('books/{id}/export/markdown', [ExportControllers\BookExportApiController::class, 'exportMarkdown']);
40 Route::get('books/{id}/export/zip', [ExportControllers\BookExportApiController::class, 'exportZip']);
41
42 Route::get('chapters', [EntityControllers\ChapterApiController::class, 'list']);
43 Route::post('chapters', [EntityControllers\ChapterApiController::class, 'create']);
44 Route::get('chapters/{id}', [EntityControllers\ChapterApiController::class, 'read']);
45 Route::put('chapters/{id}', [EntityControllers\ChapterApiController::class, 'update']);
46 Route::delete('chapters/{id}', [EntityControllers\ChapterApiController::class, 'delete']);
47 Route::get('chapters/{id}/export/html', [ExportControllers\ChapterExportApiController::class, 'exportHtml']);
48 Route::get('chapters/{id}/export/pdf', [ExportControllers\ChapterExportApiController::class, 'exportPdf']);
49 Route::get('chapters/{id}/export/plaintext', [ExportControllers\ChapterExportApiController::class, 'exportPlainText']);
50 Route::get('chapters/{id}/export/markdown', [ExportControllers\ChapterExportApiController::class, 'exportMarkdown']);
51 Route::get('chapters/{id}/export/zip', [ExportControllers\ChapterExportApiController::class, 'exportZip']);
52
53 Route::get('pages', [EntityControllers\PageApiController::class, 'list']);
54 Route::post('pages', [EntityControllers\PageApiController::class, 'create']);
55 Route::get('pages/{id}', [EntityControllers\PageApiController::class, 'read']);
56 Route::put('pages/{id}', [EntityControllers\PageApiController::class, 'update']);
57 Route::delete('pages/{id}', [EntityControllers\PageApiController::class, 'delete']);
58
59 Route::get('pages/{id}/export/html', [ExportControllers\PageExportApiController::class, 'exportHtml']);
60 Route::get('pages/{id}/export/pdf', [ExportControllers\PageExportApiController::class, 'exportPdf']);
61 Route::get('pages/{id}/export/plaintext', [ExportControllers\PageExportApiController::class, 'exportPlainText']);
62 Route::get('pages/{id}/export/markdown', [ExportControllers\PageExportApiController::class, 'exportMarkdown']);
63 Route::get('pages/{id}/export/zip', [ExportControllers\PageExportApiController::class, 'exportZip']);
64
65 Route::get('image-gallery', [ImageGalleryApiController::class, 'list']);
66 Route::post('image-gallery', [ImageGalleryApiController::class, 'create']);
67 Route::get('image-gallery/{id}', [ImageGalleryApiController::class, 'read']);
68 Route::put('image-gallery/{id}', [ImageGalleryApiController::class, 'update']);
69 Route::delete('image-gallery/{id}', [ImageGalleryApiController::class, 'delete']);
70
71 Route::get('search', [SearchApiController::class, 'all']);
72
73 Route::get('shelves', [EntityControllers\BookshelfApiController::class, 'list']);
74 Route::post('shelves', [EntityControllers\BookshelfApiController::class, 'create']);
75 Route::get('shelves/{id}', [EntityControllers\BookshelfApiController::class, 'read']);
76 Route::put('shelves/{id}', [EntityControllers\BookshelfApiController::class, 'update']);
77 Route::delete('shelves/{id}', [EntityControllers\BookshelfApiController::class, 'delete']);
78
79 Route::get('users', [UserApiController::class, 'list']);
80 Route::post('users', [UserApiController::class, 'create']);
81 Route::get('users/{id}', [UserApiController::class, 'read']);
82 Route::put('users/{id}', [UserApiController::class, 'update']);
83 Route::delete('users/{id}', [UserApiController::class, 'delete']);
84
85 Route::get('roles', [RoleApiController::class, 'list']);
86 Route::post('roles', [RoleApiController::class, 'create']);
87 Route::get('roles/{id}', [RoleApiController::class, 'read']);
88 Route::put('roles/{id}', [RoleApiController::class, 'update']);
89 Route::delete('roles/{id}', [RoleApiController::class, 'delete']);
90
91 Route::get('recycle-bin', [EntityControllers\RecycleBinApiController::class, 'list']);
92 Route::put('recycle-bin/{deletionId}', [EntityControllers\RecycleBinApiController::class, 'restore']);
93 Route::delete('recycle-bin/{deletionId}', [EntityControllers\RecycleBinApiController::class, 'destroy']);
94
95 Route::get('content-permissions/{contentType}/{contentId}', [ContentPermissionApiController::class, 'read']);
96 Route::put('content-permissions/{contentType}/{contentId}', [ContentPermissionApiController::class, 'update']);
97
98 Route::get('audit-log', [AuditLogApiController::class, 'list']);
99
100 Route::get('system', [SystemApiController::class, 'read']);
101
102 Route::get('import', [ExportControllers\ImportApiController::class, 'list']);
103 Route::post('import', [ExportControllers\ImportApiController::class, 'upload']);
104 Route::get('import/{id}', [ExportControllers\ImportApiController::class, 'read']);
105 Route::post('import/{id}/create', [ExportControllers\ImportApiController::class, 'create']);
106 Route::delete('import/{id}', [ExportControllers\ImportApiController::class, 'destroy']);