Added opaque join-token support across backend and frontend: new migration/model/service/endpoints, guest controllers now resolve tokens, and the demo seeder seeds a token. Tenant event details list/manage tokens with copy/revoke actions, and the guest PWA uses tokens end-to-end (routing, storage, uploads, achievements, etc.). Docs TODO updated to reflect completed steps.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
use App\Http\Controllers\Api\EventPublicController;
|
||||
use App\Http\Controllers\Api\Tenant\EventController;
|
||||
use App\Http\Controllers\Api\Tenant\EventJoinTokenController;
|
||||
use App\Http\Controllers\Api\Tenant\SettingsController;
|
||||
use App\Http\Controllers\Api\Tenant\TaskController;
|
||||
use App\Http\Controllers\Api\Tenant\PhotoController;
|
||||
@@ -48,11 +49,19 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
|
||||
Route::match(['put', 'patch'], 'events/{event:slug}', [EventController::class, 'update'])->name('tenant.events.update');
|
||||
});
|
||||
|
||||
Route::prefix('events/{event:slug}')->group(function () {
|
||||
Route::prefix('events/{event:slug}')->scopeBindings()->group(function () {
|
||||
Route::get('stats', [EventController::class, 'stats'])->name('tenant.events.stats');
|
||||
Route::post('toggle', [EventController::class, 'toggle'])->name('tenant.events.toggle');
|
||||
Route::post('invites', [EventController::class, 'createInvite'])->name('tenant.events.invites');
|
||||
|
||||
Route::prefix('join-tokens')->group(function () {
|
||||
Route::get('/', [EventJoinTokenController::class, 'index'])->name('tenant.events.join-tokens.index');
|
||||
Route::post('/', [EventJoinTokenController::class, 'store'])->name('tenant.events.join-tokens.store');
|
||||
Route::delete('{joinToken}', [EventJoinTokenController::class, 'destroy'])
|
||||
->whereNumber('joinToken')
|
||||
->name('tenant.events.join-tokens.destroy');
|
||||
});
|
||||
|
||||
Route::get('photos', [PhotoController::class, 'index'])->name('tenant.events.photos.index');
|
||||
Route::post('photos', [PhotoController::class, 'store'])->name('tenant.events.photos.store');
|
||||
Route::get('photos/{photo}', [PhotoController::class, 'show'])->name('tenant.events.photos.show');
|
||||
|
||||
Reference in New Issue
Block a user