lthn.io/app/Mod/Names/Routes/api.php
Claude 3f82c497fd
feat: claim approval/rejection API endpoints
POST /v1/names/claims/{id}/approve — changes status, logs activity.
POST /v1/names/claims/{id}/reject — changes status, logs activity.
Both require auth.api middleware. Validates claim exists and is pending.
Completes the claim lifecycle: submit → review → approve/reject.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 12:07:38 +01:00

26 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use Illuminate\Support\Facades\Route;
use Mod\Names\Controllers\NamesController;
Route::get('/available/{name}', [NamesController::class, 'available']);
Route::get('/lookup/{name}', [NamesController::class, 'lookup']);
Route::get('/search', [NamesController::class, 'search']);
Route::get('/directory', [NamesController::class, 'directory']);
Route::post('/register', [NamesController::class, 'register'])->middleware(['auth.api', 'throttle:10,1']);
Route::get('/records/{name}', [NamesController::class, 'records']);
Route::post('/records/{name}', [NamesController::class, 'updateRecords'])->middleware(['auth.api', 'throttle:20,1']);
Route::get('/ticket/{id}', [NamesController::class, 'ticket']);
Route::get('/health', [NamesController::class, 'health']);
// Sunrise domain verification
Route::get('/sunrise/verify/{name}', [NamesController::class, 'sunriseVerify']);
Route::get('/sunrise/check/{name}', [NamesController::class, 'sunriseCheck']);
// Pre-registration claims (soft launch)
Route::post('/claim', [NamesController::class, 'claim'])->middleware('throttle:10,1');
Route::get('/claims', [NamesController::class, 'listClaims'])->middleware('auth.api');
Route::post('/claims/{id}/approve', [NamesController::class, 'approveClaim'])->middleware('auth.api');
Route::post('/claims/{id}/reject', [NamesController::class, 'rejectClaim'])->middleware('auth.api');