TIDE/backend/routes/api.php
Yisroel Baum 8ac5a5b18a
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.
2026-05-06 22:32:46 +03:00

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);