MIF_E31231302_WEBSITE/routes/api.php

125 lines
4.0 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\MonitoringController;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Api\SkriningController;
use App\Http\Controllers\Api\ApiAuthController;
use App\Http\Controllers\AuthController;
// Auth Routes
Route::post('/login', [ApiAuthController::class, 'login']);
Route::post('/register', [ApiAuthController::class, 'register']);
Route::post('/forgot-password', [ApiAuthController::class, 'forgotPassword']);
// Profile Routes
Route::post('/update-profile', [ApiAuthController::class, 'updateProfile']);
Route::get('/get-profile', [ApiAuthController::class, 'getProfile']);
Route::post('/complete-profile', [ApiAuthController::class, 'completeProfile']);
// Monitoring Routes
Route::get('/monitoring/{id_user}', [MonitoringController::class, 'index']);
Route::post('/monitoring/konfirmasi', [MonitoringController::class, 'konfirmasi']);
Route::get('/status', function() {
return response()->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']);