39 lines
2.2 KiB
PHP
39 lines
2.2 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\V1\AliasController;
|
|
use App\Http\Controllers\Api\V1\DomainController;
|
|
use App\Http\Controllers\Api\V1\MailboxController;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::middleware(['auth:sanctum', \App\Http\Middleware\InjectSandboxMode::class])->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],
|
|
]);
|
|
});
|
|
});
|