One Hat Cyber Team
Your IP :
216.73.216.84
Server IP :
50.6.229.107
Server :
Linux server.hostburly.com 5.14.0-611.38.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 10 17:21:28 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
andjemzt
/
ggh_api
/
routes
/
View File Name :
api.php
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\Api\Auth\AuthController; use App\Http\Controllers\Api\Auth\PasswordResetController; use App\Http\Controllers\Api\Lms\PublicCourseController; use App\Http\Controllers\Api\Auth\AuthMeController; use App\Http\Controllers\Api\Auth\EmailVerificationController; use App\Http\Controllers\Api\Kyc\KycController; use App\Http\Controllers\Api\Admin\KycAdminController; Route::prefix('auth')->group(function () { // ✅ Auth summary: user + roles + email verified + kyc status Route::middleware('auth:sanctum')->get('/me', [AuthMeController::class, 'me']); // ✅ resend verification email (requires auth) Route::middleware('auth:sanctum')->post('/email/resend', [EmailVerificationController::class, 'resend']); Route::post('/password/forgot', [PasswordResetController::class, 'forgot']); // send OTP Route::post('/password/verify-otp', [PasswordResetController::class, 'verifyOtp']); // optional Route::post('/password/reset', [PasswordResetController::class, 'reset']); // reset with OTP Route::middleware('auth:sanctum')->post('/password/change', [PasswordResetController::class, 'change']); // ✅ email verify link (signed) Route::get('/email/verify/{id}/{hash}', [EmailVerificationController::class, 'verify']) ->middleware('signed') ->name('verification.verify'); }); Route::middleware(['auth:sanctum'])->prefix('kyc')->group(function () { // ✅ KYC draft read/write (students optional; tutors must complete) Route::get('/me', [KycController::class, 'me']); Route::put('/me', [KycController::class, 'updateDraft']); // ✅ documents stored locally (storage/app) Route::post('/documents', [KycController::class, 'uploadDoc']); Route::delete('/documents/{id}', [KycController::class, 'deleteDoc']); // ✅ submit requires verified email (API JSON middleware) Route::middleware('verified.json')->post('/submit', [KycController::class, 'submit']); }); // ✅ Admin KYC review (add your admin guard here if you want) Route::middleware(['auth:sanctum'])->prefix('admin/kyc')->group(function () { Route::get('/', [KycAdminController::class, 'index']); Route::get('/{id}', [KycAdminController::class, 'show']); Route::post('/{id}/approve', [KycAdminController::class, 'approve']); Route::post('/{id}/reject', [KycAdminController::class, 'reject']); Route::get('/documents/{docId}/download', [KycAdminController::class, 'downloadDoc']); }); Route::prefix('auth')->group(function () { Route::post('signup', [AuthController::class, 'register']); Route::post('login', [AuthController::class, 'login']); Route::middleware('auth:sanctum')->group(function () { // Route::get('me', [AuthController::class, 'me']); Route::post('logout', [AuthController::class, 'logout']); }); }); Route::prefix('auth')->group(function () { }); Route::prefix('/public')->group(function () { Route::get('courses', [PublicCourseController::class, 'index']); // list published Route::get('courses/{slug}', [PublicCourseController::class, 'show']); // details by slug Route::get('featured-courses', [PublicCourseController::class, 'featured']); // featured published });