One Hat Cyber Team
Your IP :
216.73.217.146
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
/
org
/
View File Name :
api.php
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\Api\Org\OrganizationAdminController; use App\Http\Controllers\Api\Org\OrganizationInvitationController; use App\Http\Controllers\Api\Org\OrganizationAssignmentController; use App\Http\Controllers\Api\Org\LearningPathAdminController; use App\Http\Controllers\Api\Org\LearningPathItemAdminController; Route::post('/org-invitations/accept', [OrganizationInvitationController::class, 'accept']); Route::post('/org-invitations/public/accept', [OrganizationInvitationController::class, 'publicAccept']); Route::prefix('orgs')->group(function () { /** * Accept invite endpoints: * - accept(): supports logged-in user OR guest (but invite token is hashed in DB in your code) * - publicAccept(): expects plain token in DB (no hash) */ // ORG scoped Route::middleware('auth:sanctum')->group(function () { Route::post('/{orgId}/invitations', [OrganizationInvitationController::class, 'invite']); Route::post('/{orgId}/invitations/resend', [OrganizationInvitationController::class, 'resend']); Route::post('/{orgId}/invitations/resend-bulk', [OrganizationInvitationController::class, 'resendBulk']); Route::get('/{orgId}/invitations', [OrganizationInvitationController::class, 'index']); Route::post('/{orgId}/invitations/{invitationId}/revoke', [OrganizationInvitationController::class, 'revoke']); Route::post('/{orgId}/invitations/revoke-bulk', [OrganizationInvitationController::class, 'revokeBulk']); }); }); Route::prefix('orgs')->group(function () { // Invite accept can be public OR auth-based. // If you want it to work without login, keep it outside auth:sanctum. Route::middleware(['auth:sanctum'])->group(function () { Route::get('/user/organizations', [OrganizationAdminController::class, 'myIndex']); Route::get('/organizations/{orgId}/members', [OrganizationAdminController::class, 'orgMembers']); // Orgs Route::get('/', [OrganizationAdminController::class, 'index']); Route::post('/', [OrganizationAdminController::class, 'store']); Route::get('/{orgId}', [OrganizationAdminController::class, 'show']); Route::patch('/{orgId}', [OrganizationAdminController::class, 'update']); // optional Route::delete('/{orgId}/logo', [OrganizationAdminController::class, 'deleteLogo']); // optional }); }); Route::prefix('orgs')->middleware(['auth:sanctum'])->group(function () { // Learning Paths (Org Admin) Route::post('/{orgId}/learning-paths', [LearningPathAdminController::class, 'store']); Route::get('/{orgId}/learning-paths/{id}', [LearningPathAdminController::class, 'show']); Route::put('/{orgId}/learning-paths/{id}', [LearningPathAdminController::class, 'update']); Route::patch('/{orgId}/learning-paths/{id}', [LearningPathAdminController::class, 'update']); Route::delete('/{orgId}/learning-paths/{id}', [LearningPathAdminController::class, 'destroy']); Route::post('/{orgId}/learning-paths/{id}/publish', [LearningPathAdminController::class, 'publish']); Route::post('/{orgId}/learning-paths/{id}/archive', [LearningPathAdminController::class, 'archive']); // Learning Path Items Route::get('/{orgId}/learning-paths/{lpId}/items', [LearningPathItemAdminController::class, 'index']); Route::post('/{orgId}/learning-paths/{lpId}/items', [LearningPathItemAdminController::class, 'store']); Route::delete('/{orgId}/learning-paths/{lpId}/items/{itemId}', [LearningPathItemAdminController::class, 'destroy']); Route::post('/{orgId}/learning-paths/{lpId}/items/reorder', [LearningPathItemAdminController::class, 'reorder']); // Assignments (Org Admin) Route::post('/{orgId}/assignments', [OrganizationAssignmentController::class, 'assign']); Route::get('/{orgId}/assignments', [OrganizationAssignmentController::class, 'index']); Route::post('/{orgId}/assignments/{assignmentId}/revoke', [OrganizationAssignmentController::class, 'revoke']); // Reports Route::get('/{orgId}/reports/progress', [OrganizationAssignmentController::class, 'progressReport']); // Staff: My Learning Route::get('/my/assignments', [OrganizationAssignmentController::class, 'myAssignments']); }); Route::prefix('learning-path')->middleware(['auth:sanctum'])->group(function () { Route::get('/{orgId}/learning-paths', [LearningPathAdminController::class, 'index']); // Staff: My Learning Route::get('/my/assignments', [OrganizationAssignmentController::class, 'myAssignments']); });