feat: harden billing verification and add browse route parity
This commit is contained in:
@@ -2,19 +2,35 @@
|
||||
|
||||
use App\Http\Controllers\Api\V1\EmojiApiController;
|
||||
use App\Http\Controllers\Api\V1\LicenseController;
|
||||
use App\Http\Controllers\Api\V1\SystemController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::options('/v1/{any}', function () {
|
||||
return response('', 204, [
|
||||
'Access-Control-Allow-Origin' => '*',
|
||||
$headers = [
|
||||
'Access-Control-Allow-Methods' => 'GET, POST, OPTIONS',
|
||||
'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-License-Key, X-Account-Id, X-Dewemoji-Frontend',
|
||||
]);
|
||||
'Vary' => 'Origin',
|
||||
];
|
||||
$origin = request()->headers->get('Origin', '');
|
||||
$allowedOrigins = config('dewemoji.cors.allowed_origins', []);
|
||||
if (is_array($allowedOrigins) && in_array($origin, $allowedOrigins, true)) {
|
||||
$headers['Access-Control-Allow-Origin'] = $origin;
|
||||
}
|
||||
|
||||
return response('', 204, $headers);
|
||||
})->where('any', '.*');
|
||||
|
||||
Route::prefix('v1')->group(function () {
|
||||
Route::get('/categories', [EmojiApiController::class, 'categories']);
|
||||
Route::get('/emojis', [EmojiApiController::class, 'emojis']);
|
||||
Route::post('/license/verify', [LicenseController::class, 'verify']);
|
||||
});
|
||||
Route::get('/emoji', [EmojiApiController::class, 'emoji']);
|
||||
Route::get('/emoji/{slug}', [EmojiApiController::class, 'emoji']);
|
||||
|
||||
Route::post('/license/verify', [LicenseController::class, 'verify']);
|
||||
Route::post('/license/activate', [LicenseController::class, 'activate']);
|
||||
Route::post('/license/deactivate', [LicenseController::class, 'deactivate']);
|
||||
|
||||
Route::get('/health', [SystemController::class, 'health']);
|
||||
Route::get('/metrics-lite', [SystemController::class, 'metricsLite']);
|
||||
Route::get('/metrics', [SystemController::class, 'metrics']);
|
||||
});
|
||||
|
||||
@@ -4,9 +4,18 @@ use App\Http\Controllers\Web\SiteController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/', [SiteController::class, 'home'])->name('home');
|
||||
Route::get('/browse', [SiteController::class, 'browse'])->name('browse');
|
||||
Route::get('/api-docs', [SiteController::class, 'apiDocs'])->name('api-docs');
|
||||
Route::get('/emoji/{slug}', [SiteController::class, 'emojiDetail'])->name('emoji-detail');
|
||||
|
||||
Route::get('/pricing', [SiteController::class, 'pricing'])->name('pricing');
|
||||
Route::get('/privacy', [SiteController::class, 'privacy'])->name('privacy');
|
||||
Route::get('/terms', [SiteController::class, 'terms'])->name('terms');
|
||||
|
||||
Route::get('/{categorySlug}', [SiteController::class, 'category'])
|
||||
->where('categorySlug', 'all|smileys|people|animals|food|travel|activities|objects|symbols|flags')
|
||||
->name('category');
|
||||
Route::get('/{categorySlug}/{subcategorySlug}', [SiteController::class, 'categorySubcategory'])
|
||||
->where('categorySlug', 'all|smileys|people|animals|food|travel|activities|objects|symbols|flags')
|
||||
->where('subcategorySlug', '[a-z0-9\-]+')
|
||||
->name('category-subcategory');
|
||||
|
||||
Reference in New Issue
Block a user