GET /users?q=... is public; POST /admin/users/promote is auth required and admin-checked inside the use case.
58 lines
2 KiB
PHP
58 lines
2 KiB
PHP
<?php
|
|
|
|
use App\Controllers\AuthController;
|
|
use App\Controllers\CommentController;
|
|
use App\Controllers\PostController;
|
|
use App\Controllers\UserController;
|
|
use App\Http\Middleware\AuthMiddleware;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/', function () {
|
|
return '';
|
|
});
|
|
|
|
Route::post('/signup', [AuthController::class, 'signup']);
|
|
Route::post('/confirm-email', [AuthController::class, 'confirmEmail']);
|
|
Route::post('/login', [AuthController::class, 'login']);
|
|
Route::post('/logout', [AuthController::class, 'logout'])
|
|
->middleware(AuthMiddleware::class);
|
|
Route::get('/me', [AuthController::class, 'me'])
|
|
->middleware(AuthMiddleware::class);
|
|
|
|
Route::get('/posts', [PostController::class, 'recent']);
|
|
Route::get('/posts/featured', [PostController::class, 'listFeatured']);
|
|
Route::get('/posts/{id}', [PostController::class, 'show'])
|
|
->whereNumber('id');
|
|
Route::post('/posts', [PostController::class, 'create'])
|
|
->middleware(AuthMiddleware::class);
|
|
Route::delete('/posts/{id}', [PostController::class, 'delete'])
|
|
->whereNumber('id')
|
|
->middleware(AuthMiddleware::class);
|
|
Route::post('/admin/posts/feature', [PostController::class, 'feature'])
|
|
->middleware(AuthMiddleware::class);
|
|
Route::post('/admin/posts/unfeature', [PostController::class, 'unfeature'])
|
|
->middleware(AuthMiddleware::class);
|
|
|
|
Route::get('/users', [UserController::class, 'search']);
|
|
Route::post('/admin/users/promote', [UserController::class, 'promote'])
|
|
->middleware(AuthMiddleware::class);
|
|
|
|
Route::get(
|
|
'/users/{displayName}/posts',
|
|
[PostController::class, 'listByUser'],
|
|
);
|
|
|
|
Route::get(
|
|
'/posts/{postId}/comments',
|
|
[CommentController::class, 'listForPost'],
|
|
)->whereNumber('postId');
|
|
Route::post(
|
|
'/posts/{postId}/comments',
|
|
[CommentController::class, 'create'],
|
|
)->whereNumber('postId')
|
|
->middleware(AuthMiddleware::class);
|
|
Route::delete(
|
|
'/comments/{id}',
|
|
[CommentController::class, 'delete'],
|
|
)->whereNumber('id')
|
|
->middleware(AuthMiddleware::class);
|