Adds POST /admin/posts/feature, POST /admin/posts/unfeature (both auth-required, admin-checked inside controller via the use case's ForbiddenException), and public GET /posts/featured. Post serialization now includes featureSlot.
53 lines
1.8 KiB
PHP
53 lines
1.8 KiB
PHP
<?php
|
|
|
|
use App\Controllers\AuthController;
|
|
use App\Controllers\CommentController;
|
|
use App\Controllers\PostController;
|
|
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/{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);
|