implement featured post admin endpoints

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.
This commit is contained in:
Yisroel Baum 2026-05-06 22:32:46 +03:00
parent 8983b69fa1
commit 8ac5a5b18a
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
2 changed files with 85 additions and 1 deletions

View file

@ -19,6 +19,7 @@ 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'])
@ -26,6 +27,10 @@ Route::post('/posts', [PostController::class, 'create'])
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',