Files
saqel/backend/routes/api.php
T
2026-08-26 16:48:32 +03:00

45 lines
1.7 KiB
PHP

<?php
use App\Http\Controllers\Api\V1\GuardianSummaryController;
use App\Http\Controllers\Api\V1\ProgressController;
use App\Http\Controllers\Api\V1\QuizAttemptController;
use App\Http\Controllers\Api\V1\StudentAnalysisController;
use Illuminate\Support\Facades\Route;
Route::prefix('v1')->middleware('api.token')->group(function (): void {
Route::post('/progress/heartbeat', [ProgressController::class, 'heartbeat'])->name('progress.heartbeat');
Route::post('/lessons/{lesson}/quizzes/{quiz}/attempts', [QuizAttemptController::class, 'store'])
->name('quiz-attempts.store');
Route::post('/students/me/analysis', [StudentAnalysisController::class, 'store'])
->name('students.analysis.store');
Route::get('/guardian/students/{student}/summary', [GuardianSummaryController::class, 'show'])
->name('guardian.students.summary');
});
use App\Http\Controllers\Api\AuthController;
Route::prefix('auth')->middleware('throttle:auth')->group(function () {
Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
});
Route::prefix('auth')->middleware('auth:sanctum')->group(function () {
Route::post('/logout', [AuthController::class, 'logout']);
Route::delete('/account', [AuthController::class, 'deleteAccount']);
});
use App\Http\Controllers\Api\CourseController;
use App\Http\Controllers\Api\TeacherContentController;
Route::middleware('auth:sanctum')->group(function () {
// Student/General Browsing
Route::get('/courses', [CourseController::class, 'index']);
Route::get('/courses/{course}', [CourseController::class, 'show']);
// Teacher Uploads
Route::post('/teacher/lessons', [TeacherContentController::class, 'storeLesson']);
});