45 lines
1.7 KiB
PHP
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']);
|
|
});
|