group(function () { Route::post('/refresh', [AuthController::class, 'refresh']); /* Rota protegida por middleware JwtMiddleware - Só os utilizadores autenticados podem aceder a esta rota */ Route::patch('/profile/{id}', [UserController::class, 'update']); Route::get('/profile', [UserController::class, 'profile']); Route::get('/videos', [VideosController::class, 'index']); Route::get('/video/{id}', [VideosController::class, 'getVideo']); Route::post('/video/{video}/watch', [VideoViewController::class, 'store']); Route::get('/videos-length', [VideosController::class, 'videosLength']); Route::get('/videos-search', [VideosController::class, 'search']); Route::get('/next-videos', [VideosController::class, 'nextVideos']); Route::get('/categories', [CategoryController::class, 'index']); Route::get('/workshops', [WorkshopsController::class, 'index']); Route::get('/workshop/{id}', [WorkshopsController::class, 'getWorkshop']); Route::get('/workshops-length', [WorkshopsController::class, 'workshopsLength']); Route::get('/workshops-search', [WorkshopsController::class, 'search']); Route::get('/next-workshops', [WorkshopsController::class, 'nextWorkshops']); Route::post('/categories', [CategoryController::class, 'create']); Route::post('/inscrever/{id}', [WorkshopsController::class, 'inscrever']); Route::delete('/cancelar-inscricao/{id}', [WorkshopsController::class, 'cancelarInscricao']); Route::get('/dashboard', [DashboardController::class, 'index']); /* Para fazer a verificação do role_id no frontend das páginas do admin */ Route::get('/me', [AuthController::class, 'me']); /* Rota protegida por middleware AdminMiddleware - Só os administradores podem aceder as estas rotas */ Route::middleware('admin')->group(function () { Route::get('/users', [UserController::class, 'index']); Route::post('/create-user', [UserController::class, 'create']); Route::get('/get-user/{id}', [UserController::class, 'getUser']); Route::patch('/edit-user/{id}', [UserController::class, 'update']); Route::delete('/edit-user/{id}', [UserController::class, 'destroy']); Route::post('/create-video', [VideosController::class, 'create']); Route::get('/edit-video/{id}', [VideosController::class, 'getVideo']); Route::patch('/edit-video/{id}', [VideosController::class, 'update']); Route::delete('/delete-video/{id}', [VideosController::class, 'destroy']); Route::post('/create-workshop', [WorkshopsController::class, 'create']); Route::get('/edit-workshop/{id}', [WorkshopsController::class, 'getWorkshop']); Route::delete('/edit-workshop/{id}', [WorkshopsController::class, 'destroy']); Route::post('/edit-workshop/{id}', [WorkshopsController::class, 'update']); /* Depois de protergermos as rotas com middleware, criamos o layout para o admin em pages/privateadmin/_layout.tsx */ }); });