Add tests for featured thumbnail generation; apply Pint formatting and related edits
This commit is contained in:
@@ -35,13 +35,13 @@ Route::middleware(['web', 'throttle:60,1'])->prefix('leaderboard')->name('api.le
|
||||
Route::get('worlds', [\App\Http\Controllers\Api\LeaderboardController::class, 'worlds'])->name('worlds');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'creator.access'])->prefix('stories')->name('api.stories.')->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'creator.access'])->prefix('stories')->name('api.stories.')->group(function () {
|
||||
Route::post('create', [\App\Http\Controllers\StoryController::class, 'apiCreate'])->middleware('forum.bot.protection:api_write')->name('create');
|
||||
Route::put('update', [\App\Http\Controllers\StoryController::class, 'apiUpdate'])->middleware('forum.bot.protection:api_write')->name('update');
|
||||
Route::post('autosave', [\App\Http\Controllers\StoryController::class, 'apiAutosave'])->middleware('forum.bot.protection:api_write')->name('autosave');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'creator.access'])->prefix('story')->name('api.story.')->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'creator.access'])->prefix('story')->name('api.story.')->group(function () {
|
||||
Route::post('upload-image', [\App\Http\Controllers\StoryController::class, 'apiUploadImage'])->middleware('forum.bot.protection:api_write')->name('upload-image');
|
||||
Route::get('artworks', [\App\Http\Controllers\StoryController::class, 'apiArtworks'])->name('artworks');
|
||||
});
|
||||
@@ -141,7 +141,7 @@ Route::prefix('rank')->name('api.rank.')->middleware(['throttle:60,1'])->group(f
|
||||
*/
|
||||
|
||||
// ── Studio Pro API (authenticated) ─────────────────────────────────────────────
|
||||
Route::middleware(['web', 'auth'])->prefix('studio')->name('api.studio.')->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified'])->prefix('studio')->name('api.studio.')->group(function () {
|
||||
Route::post('events', [\App\Http\Controllers\Studio\StudioEventsApiController::class, 'store'])->name('events.store');
|
||||
Route::get('upload-queue', [\App\Http\Controllers\Studio\StudioUploadQueueApiController::class, 'index'])->name('upload-queue.index');
|
||||
Route::post('upload-queue/batches', [\App\Http\Controllers\Studio\StudioUploadQueueApiController::class, 'store'])->name('upload-queue.store');
|
||||
@@ -150,6 +150,9 @@ Route::middleware(['web', 'auth'])->prefix('studio')->name('api.studio.')->group
|
||||
Route::post('upload-queue/items/{id}/retry', [\App\Http\Controllers\Studio\StudioUploadQueueApiController::class, 'retry'])->whereNumber('id')->name('upload-queue.items.retry');
|
||||
Route::post('news/media/upload', [\App\Http\Controllers\Studio\StudioNewsMediaApiController::class, 'store'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('news.media.upload');
|
||||
Route::delete('news/media', [\App\Http\Controllers\Studio\StudioNewsMediaApiController::class, 'destroy'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('news.media.destroy');
|
||||
Route::post('academy/lessons/media/upload', [\App\Http\Controllers\Settings\AcademyLessonMediaApiController::class, 'store'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('academy.lessons.media.upload');
|
||||
Route::get('academy/lessons/media/assets', [\App\Http\Controllers\Settings\AcademyLessonMediaApiController::class, 'assets'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('academy.lessons.media.assets');
|
||||
Route::delete('academy/lessons/media', [\App\Http\Controllers\Settings\AcademyLessonMediaApiController::class, 'destroy'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('academy.lessons.media.destroy');
|
||||
Route::post('worlds/media/upload', [\App\Http\Controllers\Studio\StudioWorldMediaApiController::class, 'store'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('worlds.media.upload');
|
||||
Route::delete('worlds/media', [\App\Http\Controllers\Studio\StudioWorldMediaApiController::class, 'destroy'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('worlds.media.destroy');
|
||||
Route::put('preferences', [\App\Http\Controllers\Studio\StudioPreferencesApiController::class, 'updatePreferences'])->name('preferences.settings');
|
||||
@@ -180,7 +183,11 @@ Route::middleware(['web', 'auth'])->prefix('studio')->name('api.studio.')->group
|
||||
Route::get('tags/search', [\App\Http\Controllers\Studio\StudioArtworksApiController::class, 'searchTags'])->name('tags.search');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth'])->prefix('cards')->name('api.cards.')->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified'])->prefix('academy')->name('api.academy.')->group(function () {
|
||||
Route::post('categories', [\App\Http\Controllers\Settings\AcademyAdminController::class, 'categoriesStoreJson'])->middleware(['throttle:20,1', 'forum.bot.protection:api_write'])->name('categories.store');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'verified'])->prefix('cards')->name('api.cards.')->group(function () {
|
||||
Route::post('{id}/like', [\App\Http\Controllers\Api\NovaCards\NovaCardInteractionController::class, 'like'])
|
||||
->middleware(['throttle:nova-cards-render', 'forum.bot.protection:api_write'])
|
||||
->whereNumber('id')
|
||||
@@ -650,7 +657,7 @@ Route::middleware(['web'])
|
||||
Route::get('{id}/medal', [\App\Http\Controllers\Api\ArtworkAwardController::class, 'show'])->whereNumber('id')->name('show');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'normalize.username'])->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username'])->group(function () {
|
||||
Route::match(['post', 'delete'], 'like', [\App\Http\Controllers\Api\SocialCompatibilityController::class, 'like'])
|
||||
->name('api.social.like');
|
||||
|
||||
@@ -706,7 +713,7 @@ Route::middleware(['web', 'throttle:60,1'])
|
||||
->whereNumber('id')
|
||||
->name('api.artworks.comments.index');
|
||||
|
||||
Route::middleware(['web', 'auth', 'normalize.username', 'throttle:20,1'])->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username', 'throttle:20,1'])->group(function () {
|
||||
Route::post('artworks/{id}/comments', [\App\Http\Controllers\Api\ArtworkCommentController::class, 'store'])
|
||||
->whereNumber('id')
|
||||
->name('api.artworks.comments.store');
|
||||
@@ -725,7 +732,7 @@ Route::middleware(['web', 'throttle:60,1'])
|
||||
->whereNumber('id')
|
||||
->name('api.news.comments.index');
|
||||
|
||||
Route::middleware(['web', 'auth', 'normalize.username', 'throttle:20,1'])->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username', 'throttle:20,1'])->group(function () {
|
||||
Route::post('news/articles/{id}/comments', [\App\Http\Controllers\Api\NewsArticleCommentController::class, 'store'])
|
||||
->whereNumber('id')
|
||||
->name('api.news.comments.store');
|
||||
@@ -755,7 +762,7 @@ Route::middleware(['web', 'throttle:reactions-read'])->group(function () {
|
||||
->name('api.news.comments.reactions.index');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'normalize.username', 'throttle:reactions-write'])->group(function () {
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username', 'throttle:reactions-write'])->group(function () {
|
||||
Route::post('artworks/{id}/reactions', [\App\Http\Controllers\Api\ReactionController::class, 'toggleArtworkReaction'])
|
||||
->whereNumber('id')
|
||||
->name('api.artworks.reactions.toggle');
|
||||
@@ -808,7 +815,7 @@ Route::middleware(['web'])
|
||||
->name('following');
|
||||
|
||||
// Auth-required: follow / unfollow
|
||||
Route::middleware(['auth', 'normalize.username', 'throttle:follow-write', 'forum.security.firewall:follow', 'forum.bot.protection:follow'])->group(function () {
|
||||
Route::middleware(['auth', 'verified', 'normalize.username', 'throttle:follow-write', 'forum.security.firewall:follow', 'forum.bot.protection:follow'])->group(function () {
|
||||
Route::post('{username}/follow', [\App\Http\Controllers\Api\FollowController::class, 'follow'])
|
||||
->where('username', '[A-Za-z0-9_-]{3,20}')
|
||||
->name('follow');
|
||||
@@ -835,7 +842,7 @@ Route::middleware(['web'])
|
||||
// POST /api/messages/{conversation_id}/{message_id}/react → add reaction
|
||||
// DELETE /api/messages/{conversation_id}/{message_id}/react → remove reaction
|
||||
// DELETE /api/messages/message/{message_id} → soft-delete message
|
||||
Route::middleware(['web', 'auth', 'normalize.username', 'throttle:60,1'])
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username', 'throttle:60,1'])
|
||||
->prefix('messages')
|
||||
->name('api.messages.')
|
||||
->group(function () {
|
||||
@@ -931,7 +938,7 @@ Route::middleware(['web', 'throttle:60,1'])
|
||||
->name('comments.index');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth', 'normalize.username'])
|
||||
Route::middleware(['web', 'auth', 'verified', 'normalize.username'])
|
||||
->prefix('posts')
|
||||
->name('api.posts.')
|
||||
->group(function () {
|
||||
@@ -1021,7 +1028,7 @@ Route::middleware(['web', 'throttle:social-read'])
|
||||
->name('index');
|
||||
});
|
||||
|
||||
Route::middleware(['web', 'auth'])
|
||||
Route::middleware(['web', 'auth', 'verified'])
|
||||
->prefix('stories')
|
||||
->name('api.stories.social.')
|
||||
->group(function () {
|
||||
|
||||
Reference in New Issue
Block a user