23 lines
1.0 KiB
PHP
23 lines
1.0 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\ApiIssueController;
|
|
use App\Http\Controllers\Api\EventIngestController;
|
|
use App\Http\Middleware\AuthenticateApiToken;
|
|
use App\Http\Middleware\AuthenticateDsn;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// Event ingestion (uses DSN authentication)
|
|
Route::post('/{project}/store/', [EventIngestController::class, 'store'])
|
|
->middleware(AuthenticateDsn::class)
|
|
->name('api.events.store');
|
|
|
|
// REST API (uses token authentication)
|
|
Route::middleware(AuthenticateApiToken::class)->prefix('v1')->group(function () {
|
|
Route::prefix('projects/{project}/issues')->group(function () {
|
|
Route::get('/', [ApiIssueController::class, 'index'])->name('api.v1.issues.index');
|
|
Route::get('/{issue}', [ApiIssueController::class, 'show'])->name('api.v1.issues.show');
|
|
Route::patch('/{issue}', [ApiIssueController::class, 'update'])->name('api.v1.issues.update');
|
|
Route::delete('/{issue}', [ApiIssueController::class, 'destroy'])->name('api.v1.issues.destroy');
|
|
});
|
|
});
|