TIFNJK_E41221880/routes/web.php

303 lines
11 KiB
PHP

<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\ClassController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\AkunController;
use App\Http\Controllers\JadwalController;
use App\Http\Controllers\PeriodeController;
use App\Http\Controllers\SubjectController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HistoryDailyController;
use App\Http\Controllers\AttendanceHistoryController;
use App\Http\Controllers\LaporkanController;
use App\Http\Controllers\NotificationController;
use App\Http\Controllers\PermissionController;
use App\Http\Controllers\ReportController;
use Illuminate\Routing\RouteUrlGenerator;
use Illuminate\Support\Facades\Http;
Route::get('/', function () {
if (Auth::check()) {
return redirect()->route('dashboard.index');
}
return view('auth.login');
})->name('login');
Route::post('/login', [AuthController::class, 'login'])->name('login.post');
Route::post('/register/student', [AuthController::class, 'registerStudent'])->name('register.student.post');
Route::post('/register/teacher', [AuthController::class, 'registerTeacher'])->name('register.teacher.post');
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
// Routes untuk forgot-password flow
Route::get('/forgot-password', [AuthController::class, 'showForgotPassword'])
->middleware('guest')
->name('password.request');
Route::post('/forgot-password', [AuthController::class, 'sendResetLink'])
->middleware('guest')
->name('password.email');
Route::get('/verify-token', [AuthController::class, 'showVerifyToken'])
->middleware('guest')
->name('password.verify.form');
Route::post('/verify-token', [AuthController::class, 'verifyToken'])
->middleware('guest')
->name('password.verify.token');
Route::get('/confirm-password', [AuthController::class, 'showConfirmPassword'])
->middleware('guest')
->name('password.confirm.form');
Route::post('/confirm-password', [AuthController::class, 'updatePassword'])
->middleware('guest')
->name('password.confirm.update');
// middleware auth
Route::get('/pages/dashboard/dashboard', [DashboardController::class, 'index'])
->middleware('auth')
->name('dashboard.index');
// ====================== akun =====================
Route::get('/pages/akun/indentitas_siswa', [AuthController::class, 'identitasSiswa'])
->middleware('auth')
->name('akun.indentitas_siswa');
Route::delete('/pages/akun/indentitas_siswa/{id}', [AuthController::class, 'destroyStudent'])
->middleware('auth')
->name('akun.indentitas_siswa.destroy');
Route::put('/pages/akun/indentitas_siswa/{id}', [AuthController::class, 'updateStudent'])
->middleware('auth')
->name('akun.indentitas_siswa.update');
Route::put('/pages/akun/indentitas_siswa/{id}/edit-kelas', [AuthController::class, 'updateStudentClass'])
->middleware('auth')
->name('akun.indentitas_siswa.update_kelas');
Route::get('/pages/akun/indentitas_guru', [AuthController::class, 'identitasGuru'])
->middleware('auth')
->name('akun.indentitas_guru');
Route::post('/register/teacher', [AuthController::class, 'registerTeacher'])
->name('register.teacher.post');
Route::put('/pages/akun/indentitas_guru/{id}', [AuthController::class, 'updateTeacher'])
->middleware('auth')
->name('akun.indentitas_guru.update');
Route::delete('/pages/akun/indentitas_guru/{id}', [AuthController::class, 'destroyTeacher'])
->middleware('auth')
->name('akun.indentitas_guru.destroy');
// Route untuk hapus siswa
// ====================== end akun =====================
// ===================== mata pelajaran ===============
Route::get('/pages/mapel/mapel', [SubjectController::class, 'index'])
->middleware('auth')
->name('mapel.index');
Route::post('/pages/mapel/mapel', [SubjectController::class, 'store'])
->middleware('auth')
->name('mapel.store');
Route::put('/pages/mapel/mapel/{id}', [SubjectController::class, 'update'])
->middleware('auth')
->name('mapel.update');
Route::delete('/pages/mapel/mapel/{id}', [SubjectController::class, 'destroy'])
->middleware('auth')
->name('mapel.destroy');
// ==================== end mata pelajaran =============
// ======================== periode ====================
Route::get('/pages/periode/periode', [PeriodeController::class, 'index'])
->middleware('auth')
->name('periode.index');
Route::post('/pages/periode/periode', [PeriodeController::class, 'store'])
->middleware('auth')
->name('periode.store');
Route::post('/periode/{id}/activate', [PeriodeController::class, 'activate'])->name('periode.activate');
Route::put('/periode/{id}', [PeriodeController::class, 'update'])->name('periode.update');
Route::delete('/periode/{id}', [PeriodeController::class, 'destroy'])->name('periode.destroy');
// ===================== end periode ====================
// ======================== jadwal ========================
Route::get('/pages/jadwal/jadwal', [JadwalController::class, 'index'])
->middleware('auth')
->name('jadwal.index');
Route::post('/pages/jadwal/jadwal', [JadwalController::class, 'store'])
->middleware('auth')
->name('jadwal.store');
Route::put('/pages/jadwal/jadwal/{id}', [JadwalController::class, 'update'])
->middleware('auth')
->name('jadwal.update');
Route::delete('/pages/jadwal/jadwal', [JadwalController::class, 'destroy'])
->middleware('auth')
->name('jadwal.destroy');
Route::get('/jadwal/qr/{id}', [JadwalController::class, 'showQr'])->middleware('auth')->name('jadwal.qr');
Route::get('/jadwal/qr-link/{id}', [JadwalController::class, 'generateQrLink'])
->middleware('auth')
->name('jadwal.qr.link');
// ========================= end jadwal ======================
// ============================ kelas ==========================
Route::get('/pages/kelas/kelas_absensi', [ClassController::class, 'harian'])
->middleware('auth')
->name('kelas.absensi');
Route::get('/pages/kelas/kelas_mapel', [ClassController::class, 'mapel'])
->middleware('auth')
->name('kelas.mapel');
// Route untuk tambah kelas
Route::post('/pages/kelas/kelas', [ClassController::class, 'store'])
->middleware('auth')
->name('kelas.store');
// Route untuk update kelas
Route::put('/pages/kelas/kelas/{id}', [ClassController::class, 'update'])
->middleware('auth')
->name('kelas.update');
// Route untuk hapus kelas
Route::delete('/pages/kelas/kelas/{id}', [ClassController::class, 'destroy'])
->middleware('auth')
->name('kelas.destroy');
// Route untuk absensi kelas
// Route::get('/pages/kelas/absensi_face_recognition/{id}', function ($id) {
// return view('pages.kelas.absensi_face_recognition', compact('id'));
// })->middleware('auth')->name('kelas.absensi_face_recognition');
// ========================== end kelas ======================
// ============================ absensi ======================
// Route::get('/pages/absensi/absensi_harian', function () {
// return view('pages.absensi.absensi_harian');
// })->middleware('auth')->name('absensi.absensi_harian');
Route::get('/pages/absensi/absensi_harian/{classId}', [HistoryDailyController::class, 'absensiHarian'])
->middleware('auth')
->name('absensi.absensi_harian');
Route::post('/pages/absensi/absensi_harian/edit-status/{id}', [HistoryDailyController::class, 'editStatus'])
->middleware('auth')
->name('absensi_harian.edit_status');
Route::get('/pages/absensi/absensi_harian/export-excel/{classId}', [HistoryDailyController::class, 'exportExcel'])
->middleware('auth')
->name('absensi_harian.export_excel');
Route::get('/pages/absensi/absensi_mapel/{classId}', [AttendanceHistoryController::class, 'absensiMapel'])
->middleware('auth')
->name('absensi.absensi_mapel');
Route::get('/absensi-mapel/get-by-mapel/{classId}/{subjectId}', [AttendanceHistoryController::class, 'getAbsensiByMapel'])
->middleware('auth')
->name('absensi_mapel.get_by_mapel');
Route::get('/absensi-mapel/get-by-mapel-date/{classId}/{subjectId}/{tanggal}', [AttendanceHistoryController::class, 'getAbsensiByMapelAndDate'])
->middleware('auth')
->name('absensi_mapel.get_by_mapel_date');
Route::get('/absensi-mapel/get-schedules/{classId}/{subjectId}', [AttendanceHistoryController::class, 'getSchedules'])
->middleware('auth')
->name('absensi_mapel.get_schedules');
Route::post('/pages/absensi-mapel/edit-status/{id}', [AttendanceHistoryController::class, 'editStatus'])
->middleware('auth')
->name('absensi_mapel.edit_status');
// Route::get('/absensi-mapel/export-excel/{classId}', [AttendanceHistoryController::class, 'exportExcel'])
// ->middleware('auth')
// ->name('absensi_mapel.export_excel');
Route::get('/absensi-mapel/get-schedules/{classId}/{subjectId}', [AttendanceHistoryController::class, 'getSchedules']);
Route::post('/absensi-mapel/export-excel/{classId}', [AttendanceHistoryController::class, 'exportExcel']);
Route::get('/absensi-mapel/export-excel/{classId}', [AttendanceHistoryController::class, 'exportExcel'])
->middleware('auth')
->name('absensi_mapel.export_excel');
// ============================ end absensi ====================
Route::get('/pages/notifikasi/notifikasi', [NotificationController::class, 'index'])
->middleware('auth')
->name('notifikasi.index');
Route::delete('/pages/notifikasi/{id}', [NotificationController::class, 'destroy'])
->middleware('auth')
->name('notifikasi.destroy');
Route::get('/pages/setting/setting', [AuthController::class, 'showSetting'])
->middleware('auth')
->name('setting.index');
Route::post('/pages/setting/setting', [AuthController::class, 'updateSetting'])
->middleware('auth')
->name('setting.update');
Route::post('/pages/setting/delete-profile-picture', [AuthController::class, 'deleteProfilePicture'])
->middleware('auth')
->name('setting.photo.delete');
Route::get('/pages/laporkan/laporkan', [ReportController::class, 'index'])
->middleware('auth')
->name('laporkan.index');
Route::post('/report/{id}/update-status', [ReportController::class, 'updateStatus'])
->middleware('auth')
->name('report.updateStatus');
Route::get('/pages/perizinan/perizinan', [PermissionController::class, 'index'])
->middleware('auth')
->name('perizinan.index');
Route::post('/permissions/{id}/approve', [PermissionController::class, 'permissionAccept'])
->middleware('auth')
->name('permissions.approve');
Route::post('/permissions/{id}/reject', [PermissionController::class, 'permissionReject'])
->middleware('auth')
->name('permissions.reject');
Route::get('/send-wa', [NotificationController::class, 'sendWa'])
->name('send.wa');
Route::get('/public/attendance/qr/{token}', [JadwalController::class, 'showPublicQr'])
->name('jadwal.qr.public');
// Route::get('send-wa', function () {
// $response = Http::withHeaders([
// 'Authorization' => 'n8wkFAyiDVZQNs6Vydwt',
// ])->post('https://api.fonnte.com/send', [
// 'phone' => '+6281559769075',
// 'message' => 'Hello, this is a test message from Fonnte API!',
// ]);
// dd(json_decode($response, true));
// });