82 lines
5.1 KiB
PHP
82 lines
5.1 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Admin\AccountController;
|
|
use App\Http\Controllers\Admin\BalanceController;
|
|
use App\Http\Controllers\Admin\InviteCodeController;
|
|
use App\Http\Controllers\Admin\LoginScreenNewsController;
|
|
use App\Http\Controllers\Admin\NewsController as AdminNewsController;
|
|
use App\Http\Controllers\Admin\ShopController;
|
|
use App\Http\Controllers\Auth\LoginController;
|
|
use App\Http\Controllers\CabinetController;
|
|
use App\Http\Controllers\LandingController;
|
|
use App\Http\Controllers\LegalController;
|
|
use App\Http\Controllers\NewsController;
|
|
use App\Http\Controllers\PaymentController;
|
|
use App\Http\Controllers\WowLoginNewsFeedController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/', [LandingController::class, 'index'])->name('landing.index');
|
|
Route::get('/news', [NewsController::class, 'index'])->name('news.index');
|
|
Route::get('/news/{news}', [NewsController::class, 'show'])
|
|
->whereNumber('news')
|
|
->name('news.show');
|
|
Route::get('/public-offer', [LegalController::class, 'offer'])->name('legal.offer');
|
|
Route::get('/privacy-policy', [LegalController::class, 'privacy'])->name('legal.privacy');
|
|
Route::get('/project-rules', [LegalController::class, 'rules'])->name('legal.rules');
|
|
Route::get('/launcher/login-news.txt', [WowLoginNewsFeedController::class, 'show'])->name('launcher.login-news.show');
|
|
Route::get('/appcast.xml', static fn () => Storage::disk('public')->get('appcast.xml'));
|
|
Route::post('/register', [LandingController::class, 'register'])
|
|
->middleware('throttle:8,1')
|
|
->name('game-account.store');
|
|
|
|
Route::middleware('guest')->group(function (): void {
|
|
Route::get('/login', [LoginController::class, 'create'])->name('login');
|
|
Route::post('/login', [LoginController::class, 'store'])
|
|
->middleware('throttle:10,1')
|
|
->name('login.store');
|
|
});
|
|
|
|
Route::middleware('auth')->group(function (): void {
|
|
Route::post('/logout', [LoginController::class, 'destroy'])->name('logout');
|
|
Route::get('/cabinet', [CabinetController::class, 'index'])->name('cabinet.index');
|
|
Route::post('/cabinet/password', [CabinetController::class, 'updatePassword'])->name('cabinet.password.update');
|
|
Route::get('/cabinet/client', [CabinetController::class, 'client'])->name('cabinet.client');
|
|
Route::post('/cabinet/balance/deposit', [PaymentController::class, 'create'])
|
|
->middleware('throttle:10,1')
|
|
->name('cabinet.balance.deposit');
|
|
});
|
|
|
|
Route::match(['get', 'post'], '/payments/robokassa/success', [PaymentController::class, 'success'])->name('payments.robokassa.success');
|
|
Route::match(['get', 'post'], '/payments/robokassa/fail', [PaymentController::class, 'fail'])->name('payments.robokassa.fail');
|
|
|
|
Route::middleware(['auth', 'gamemaster'])
|
|
->prefix('admin')
|
|
->name('admin.')
|
|
->group(function (): void {
|
|
Route::get('/accounts', [AccountController::class, 'index'])->name('accounts.index');
|
|
Route::patch('/accounts/{accountId}/access', [AccountController::class, 'updateAccess'])->name('accounts.access.update');
|
|
Route::post('/invite-codes', [InviteCodeController::class, 'store'])->name('invite-codes.store');
|
|
Route::get('/balances', [BalanceController::class, 'index'])->name('balances.index');
|
|
Route::post('/balances/adjust', [BalanceController::class, 'adjust'])
|
|
->middleware('throttle:30,1')
|
|
->name('balances.adjust');
|
|
Route::get('/login-screen-news', [LoginScreenNewsController::class, 'index'])->name('login-screen-news.index');
|
|
Route::post('/login-screen-news', [LoginScreenNewsController::class, 'store'])->name('login-screen-news.store');
|
|
Route::patch('/login-screen-news/{newsItem}', [LoginScreenNewsController::class, 'update'])->name('login-screen-news.update');
|
|
Route::delete('/login-screen-news/{newsItem}', [LoginScreenNewsController::class, 'destroy'])->name('login-screen-news.destroy');
|
|
|
|
Route::get('/news', [AdminNewsController::class, 'index'])->name('news.index');
|
|
Route::post('/news', [AdminNewsController::class, 'store'])->name('news.store');
|
|
Route::patch('/news/{newsItem}', [AdminNewsController::class, 'update'])->name('news.update');
|
|
Route::delete('/news/{newsItem}', [AdminNewsController::class, 'destroy'])->name('news.destroy');
|
|
|
|
Route::get('/shop', [ShopController::class, 'index'])->name('shop.index');
|
|
Route::patch('/shop/availability', [ShopController::class, 'updateAvailability'])->name('shop.availability.update');
|
|
Route::post('/shop/categories', [ShopController::class, 'storeCategory'])->name('shop.categories.store');
|
|
Route::patch('/shop/categories/{category}', [ShopController::class, 'updateCategory'])->name('shop.categories.update');
|
|
Route::delete('/shop/categories/{category}', [ShopController::class, 'destroyCategory'])->name('shop.categories.destroy');
|
|
Route::post('/shop/products', [ShopController::class, 'storeProduct'])->name('shop.products.store');
|
|
Route::patch('/shop/products/{product}', [ShopController::class, 'updateProduct'])->name('shop.products.update');
|
|
Route::delete('/shop/products/{product}', [ShopController::class, 'destroyProduct'])->name('shop.products.destroy');
|
|
});
|