group(function (): void { Route::post('/api/logout', [IdentityController::class, 'logout']); Route::post('/api/context', [IdentityController::class, 'select']); Route::middleware(RequireCompanyContext::class)->group(function (): void { Route::post('/api/b1/billing-drafts/{id}/confirm-internal', [\App\Modules\Services\Http\ServiceController::class, 'confirmInternal'])->whereNumber('id'); Route::prefix('api/a/{area}')->group(function (): void { $controller = \App\Modules\Services\Http\ServiceController::class; Route::get('access', [$controller, 'accesses']); Route::post('access', [$controller, 'changeAccess']); Route::get('', [$controller, 'index']); Route::post('', [$controller, 'create']); Route::get('{id}', [$controller, 'show'])->whereNumber('id'); Route::patch('{id}', [$controller, 'update'])->whereNumber('id'); }); Route::get('/api/context', fn (\App\Shared\Context\CompanyContext $context) => response()->json($context->identifiers() + ['unit_id' => $context->unitId()])); Route::patch('/api/companies/{company}', [IdentityController::class, 'renameCompany']); Route::get('/api/companies/{company}', [IdentityController::class, 'company']); Route::get('/api/units/{unit}', [IdentityController::class, 'unit']); Route::patch('/api/units/{unit}', [IdentityController::class, 'renameUnit']); Route::post('/api/units', [IdentityController::class, 'createUnit']); Route::get('/api/accesses', [IdentityController::class, 'accesses']); Route::post('/api/accesses', [IdentityController::class, 'grant']); Route::post('/api/accesses/revoke', [IdentityController::class, 'revoke']); }); });