add notifications logic and add support of both JWT and Sanctum

This commit is contained in:
root
2026-03-11 01:20:31 -04:00
parent f6be51576c
commit 182036cc41
141 changed files with 8685 additions and 648 deletions
+20 -4
View File
@@ -107,6 +107,7 @@ use App\Http\Controllers\Api\Messaging\WhatsappController;
use App\Http\Controllers\Api\Subjects\SubjectCurriculumController as SubjectCurriculumApiController;
use App\Http\Controllers\Api\Exams\ExamDraftController as ExamDraftApiController;
use App\Http\Controllers\Api\Settings\ConfigurationAdminController;
use App\Http\Controllers\Api\Notifications\NotificationController as ApiNotificationController;
use App\Http\Controllers\Api\Attendance\AdminAttendanceApiController;
use App\Http\Controllers\Api\Attendance\AttendanceCommentTemplateController;
@@ -117,9 +118,13 @@ Route::prefix('v1')->group(function () {
Route::prefix('auth')->group(function () {
Route::get('register/captcha', [RegisterController::class, 'captcha']);
Route::post('register', [RegisterController::class, 'store']);
Route::post('login', [AuthController::class, 'login']);
Route::post('refresh', [AuthController::class, 'refresh'])->middleware('jwt.auth');
Route::post('logout', [AuthController::class, 'logout'])->middleware('auth.multi');
Route::get('me', [AuthController::class, 'me'])->middleware('auth.multi');
});
Route::middleware('auth:sanctum')->prefix('administrator')->group(function () {
Route::middleware('auth.multi')->prefix('administrator')->group(function () {
Route::get('absence', [AdministratorAbsenceController::class, 'index']);
Route::post('absence', [AdministratorAbsenceController::class, 'store']);
@@ -148,7 +153,7 @@ Route::prefix('v1')->group(function () {
Route::delete('emergency-contacts/{contactId}', [AdministratorEmergencyContactController::class, 'destroy']);
});
Route::middleware('auth:sanctum')->prefix('attendance')->group(function () {
Route::middleware('auth.multi')->prefix('attendance')->group(function () {
// Teacher
Route::get('/teacher/grid', [TeacherAttendanceApiController::class, 'grid']);
Route::get('/teacher/form', [TeacherAttendanceApiController::class, 'form']);
@@ -185,8 +190,19 @@ Route::prefix('v1')->group(function () {
Route::get('/class-assignment-data', [AssignmentApiController::class, 'classAssignmentData']);
});
Route::middleware('auth:sanctum')->group(function () {
Route::middleware('auth.multi')->group(function () {
Route::get('stats', [StatsController::class, 'index']);
Route::prefix('notifications')->group(function () {
Route::get('/', [ApiNotificationController::class, 'index']);
Route::post('/', [ApiNotificationController::class, 'store']);
Route::get('active', [ApiNotificationController::class, 'active']);
Route::get('deleted', [ApiNotificationController::class, 'deleted']);
Route::get('{notificationId}', [ApiNotificationController::class, 'show']);
Route::patch('{notificationId}', [ApiNotificationController::class, 'update']);
Route::delete('{notificationId}', [ApiNotificationController::class, 'destroy']);
Route::post('{notificationId}/restore', [ApiNotificationController::class, 'restore']);
Route::post('{notificationId}/read', [ApiNotificationController::class, 'markRead']);
});
Route::prefix('session')->group(function () {
Route::get('timeout-config', [SessionTimeoutController::class, 'config'])->name('session.timeout.config');
Route::get('check-timeout', [SessionTimeoutController::class, 'check'])->name('session.timeout.check');
@@ -699,7 +715,7 @@ Route::prefix('attendance-tracking')->group(function () {
Route::post('save-notification-note', [AttendanceTrackingController::class, 'saveNotificationNote']);
});
Route::middleware('auth:sanctum')->group(function () {
Route::middleware('auth.multi')->group(function () {
Route::prefix('assignments')->group(function () {
Route::get('/', [AssignmentApiController::class, 'index']);
Route::post('/', [AssignmentApiController::class, 'store']);