json(['status' => 'API is running!']); }); Route::get('/user-profile/{id}', function ($id) { $user = DB::table('users') ->join('pasien_medis', 'users.id_user', '=', 'pasien_medis.id_user') ->where('users.id_user', $id) ->first(); if ($user) { return response()->json(['success' => true, 'data' => $user]); } return response()->json(['success' => false, 'message' => 'User tidak ditemukan'], 404); }); Route::get('/notifikasi/{id_user}', function($id_user) { $notifikasi = DB::table('notifikasi') ->where('id_user', $id_user) ->where('waktu_kirim', '<=', now()) ->orderBy('waktu_kirim', 'desc') ->get(); return response()->json([ 'success' => true, 'data' => $notifikasi ]); }); Route::post('/simpan-token', function(Request $request){ $request->validate([ 'id_user' => 'required', 'token' => 'required' ]); // ================================================== // CEK TOKEN SUDAH ADA? // ================================================== $exists = DB::table('fcm_tokens') ->where('id_user', $request->id_user) ->where('token', $request->token) ->exists(); // ================================================== // INSERT TOKEN BARU // ================================================== if (!$exists) { DB::table('fcm_tokens')->updateOrInsert( [ 'id_user'=>$request->id_user, 'token'=>$request->token, ], [ 'updated_at'=>now(), 'created_at'=>now(), ] ); } return response()->json([ 'success' => true ]); }); Route::post('/hapus-token', function(Request $request){ $request->validate([ 'id_user' => 'required', 'token' => 'required' ]); DB::table('fcm_tokens') ->where('id_user', $request->id_user) ->where('token', $request->token) ->delete(); return response()->json([ 'success' => true ]); }); Route::post('/skrining', [SkriningController::class, 'store']); Route::get('/skrining', [SkriningController::class, 'index']); Route::post('/send-otp', [AuthController::class, 'sendOtp']); Route::post('/verify-otp', [AuthController::class, 'verifyOtp']); Route::post('/mobile/send-otp', [AuthController::class, 'sendOtpMobile']); Route::post('/mobile/verify-otp', [AuthController::class, 'verifyOtpMobile']); Route::post('/mobile/verify-otp-only', [AuthController::class, 'verifyOtpOnlyMobile']); Route::post('/mobile/reset-password', [AuthController::class, 'resetPasswordMobile']); Route::post('/mobile/reset-password', [AuthController::class, 'resetPasswordMobile']); Route::post('/logout-token', [AuthController::class, 'logoutToken']); Route::post('/verifikasi-password-monitoring', [MonitoringController::class, 'verifikasiPassword']); Route::get('file-pasien/lihat/{id_file}', [MonitoringController::class, 'lihatFile']); Route::get('/file-pasien/download/{id_file}', [MonitoringController::class, 'downloadFilePasien']);