prefix('v1')->name('api.v1.')->group(function () { // Mailboxes Route::get('/mailboxes', [MailboxController::class, 'index'])->middleware('ability:mailboxes:read'); Route::get('/mailboxes/{id}', [MailboxController::class, 'show'])->middleware('ability:mailboxes:read'); Route::post('/mailboxes', [MailboxController::class, 'store'])->middleware('ability:mailboxes:write'); Route::patch('/mailboxes/{id}',[MailboxController::class, 'update'])->middleware('ability:mailboxes:write'); Route::delete('/mailboxes/{id}',[MailboxController::class, 'destroy'])->middleware('ability:mailboxes:write'); // Aliases Route::get('/aliases', [AliasController::class, 'index'])->middleware('ability:aliases:read'); Route::get('/aliases/{id}', [AliasController::class, 'show'])->middleware('ability:aliases:read'); Route::post('/aliases', [AliasController::class, 'store'])->middleware('ability:aliases:write'); Route::delete('/aliases/{id}', [AliasController::class, 'destroy'])->middleware('ability:aliases:write'); // Domains Route::get('/domains', [DomainController::class, 'index'])->middleware('ability:domains:read'); Route::get('/domains/{id}', [DomainController::class, 'show'])->middleware('ability:domains:read'); Route::post('/domains', [DomainController::class, 'store'])->middleware('ability:domains:write'); Route::delete('/domains/{id}', [DomainController::class, 'destroy'])->middleware('ability:domains:write'); // Auth info Route::get('/me', function (Request $request) { $token = $request->user()->currentAccessToken(); return response()->json([ 'user' => ['id' => $request->user()->id, 'name' => $request->user()->name, 'email' => $request->user()->email], 'token' => ['name' => $token->name, 'abilities' => $token->abilities, 'sandbox' => $token->sandbox], ]); }); });