feat: API penerima push presensi dari e-jurnal
- AttendanceSyncController: POST /api/v1/attendance/sync Token auth, upsert per (student_id, date, lesson_hour) - Ping endpoint: GET /api/v1/attendance/ping?token= - CSRF exclusion for api/* routes - Settings: generate/regenerate E-Jurnal token + copy - Menu Sinkron: form input token E-Jurnal
This commit is contained in:
@@ -127,6 +127,8 @@ Route::middleware('auth')->group(function () {
|
||||
Route::middleware('permission:sync-data')->group(function () {
|
||||
Route::get('/settings/sync', [SyncController::class, 'index'])->name('settings.sync');
|
||||
Route::post('/settings/sync', [SyncController::class, 'syncNow'])->name('settings.sync.run');
|
||||
Route::post('/settings/sync/ejurnal-token', [SyncController::class, 'saveEjurnalToken'])->name('settings.sync.ejurnal-token');
|
||||
Route::post('/settings/sync/ejurnal-token/generate', [SyncController::class, 'generateEjurnalToken'])->name('settings.sync.ejurnal-token.generate');
|
||||
});
|
||||
|
||||
Route::middleware('permission:users-manage')->group(function () {
|
||||
@@ -148,3 +150,9 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('/profile', [ProfileController::class, 'index'])->name('profile.index');
|
||||
Route::post('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||
});
|
||||
|
||||
// ===== API: Internal Sync (token auth, not session) =====
|
||||
Route::post('/api/v1/attendance/sync', [App\Http\Controllers\Api\AttendanceSyncController::class, 'sync'])
|
||||
->name('api.attendance.sync');
|
||||
Route::get('/api/v1/attendance/ping', [App\Http\Controllers\Api\AttendanceSyncController::class, 'ping'])
|
||||
->name('api.attendance.ping');
|
||||
|
||||
Reference in New Issue
Block a user