This commit is contained in:
8
routes/console.php
Normal file
8
routes/console.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
131
routes/web.php
Normal file
131
routes/web.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AdminAuthController;
|
||||
use App\Http\Controllers\Admin\AdminDashboardController;
|
||||
use App\Http\Controllers\Admin\CategoryController as AdminCategoryController;
|
||||
use App\Http\Controllers\Admin\ChatController as AdminChatController;
|
||||
use App\Http\Controllers\Admin\HomeSlideController as AdminHomeSlideController;
|
||||
use App\Http\Controllers\Admin\OrderController as AdminOrderController;
|
||||
use App\Http\Controllers\Admin\ProductController as AdminProductController;
|
||||
use App\Http\Controllers\SitemapController;
|
||||
use App\Http\Controllers\Shop\AccountController;
|
||||
use App\Http\Controllers\Shop\AuthController;
|
||||
use App\Http\Controllers\Shop\CartController;
|
||||
use App\Http\Controllers\Shop\CatalogController;
|
||||
use App\Http\Controllers\Shop\ChatController as ShopChatController;
|
||||
use App\Http\Controllers\Shop\CheckoutController;
|
||||
use App\Http\Controllers\Shop\CompareController;
|
||||
use App\Http\Controllers\Shop\ContactController;
|
||||
use App\Http\Controllers\Shop\FavoriteController;
|
||||
use App\Http\Controllers\Shop\OrderController;
|
||||
use App\Http\Controllers\Shop\ProductController;
|
||||
use App\Http\Controllers\Shop\ShopController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');
|
||||
Route::get('/robots.txt', function () {
|
||||
$content = implode(PHP_EOL, [
|
||||
'User-agent: *',
|
||||
'Allow: /',
|
||||
'Disallow: /admin',
|
||||
'Disallow: /search',
|
||||
'Disallow: /favorites',
|
||||
'Disallow: /compare',
|
||||
'Disallow: /cart',
|
||||
'Disallow: /checkout',
|
||||
'Disallow: /account',
|
||||
'Disallow: /login',
|
||||
'Disallow: /register',
|
||||
'Sitemap: ' . route('sitemap'),
|
||||
]);
|
||||
|
||||
return response($content, 200, ['Content-Type' => 'text/plain; charset=UTF-8']);
|
||||
})->name('robots');
|
||||
|
||||
Route::get('/', [ShopController::class, 'home'])->name('home');
|
||||
|
||||
Route::get('/search', [CatalogController::class, 'search'])->name('search.index');
|
||||
Route::get('/catalog', [CatalogController::class, 'index'])->name('catalog.index');
|
||||
Route::get('/category/{category:slug}', [CatalogController::class, 'category'])->name('catalog.category');
|
||||
Route::get('/products/{product:slug}', [ProductController::class, 'show'])->name('products.show');
|
||||
Route::get('/chat/messages', [ShopChatController::class, 'messages'])
|
||||
->middleware('throttle:chat-read')
|
||||
->name('chat.messages');
|
||||
Route::post('/chat/messages', [ShopChatController::class, 'store'])
|
||||
->middleware('throttle:chat-send')
|
||||
->name('chat.send');
|
||||
|
||||
Route::get('/favorites', [FavoriteController::class, 'index'])->name('favorites.index');
|
||||
Route::post('/favorites/{product}', [FavoriteController::class, 'toggle'])->name('favorites.toggle');
|
||||
|
||||
Route::get('/compare', [CompareController::class, 'index'])->name('compare.index');
|
||||
Route::post('/compare/{product}', [CompareController::class, 'toggle'])->name('compare.toggle');
|
||||
Route::delete('/compare', [CompareController::class, 'clear'])->name('compare.clear');
|
||||
|
||||
Route::get('/cart', [CartController::class, 'index'])->name('cart.index');
|
||||
Route::post('/cart/{product}', [CartController::class, 'add'])->name('cart.add');
|
||||
Route::patch('/cart/{product}', [CartController::class, 'update'])->name('cart.update');
|
||||
Route::delete('/cart/{product}', [CartController::class, 'remove'])->name('cart.remove');
|
||||
|
||||
Route::get('/checkout', [CheckoutController::class, 'show'])->name('checkout.show');
|
||||
Route::post('/checkout/requisites', [CheckoutController::class, 'prepare'])->name('checkout.prepare');
|
||||
Route::get('/checkout/requisites', [CheckoutController::class, 'payment'])->name('checkout.payment');
|
||||
Route::post('/checkout', [CheckoutController::class, 'store'])->name('checkout.store');
|
||||
Route::get('/checkout/success/{order}', [CheckoutController::class, 'success'])->name('checkout.success');
|
||||
|
||||
Route::view('/about', 'pages.about')->name('pages.about');
|
||||
Route::view('/contacts', 'pages.contacts')->name('pages.contacts');
|
||||
Route::post('/contacts', [ContactController::class, 'submit'])
|
||||
->middleware('throttle:contact-send')
|
||||
->name('pages.contacts.submit');
|
||||
Route::view('/shipping-payment', 'pages.shipping-payment')->name('pages.shipping-payment');
|
||||
|
||||
Route::middleware('guest')->group(function () {
|
||||
Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login');
|
||||
Route::post('/login', [AuthController::class, 'login'])
|
||||
->middleware('throttle:auth')
|
||||
->name('login.attempt');
|
||||
Route::get('/register', [AuthController::class, 'showRegisterForm'])->name('register');
|
||||
Route::post('/register', [AuthController::class, 'register'])
|
||||
->middleware('throttle:auth')
|
||||
->name('register.store');
|
||||
});
|
||||
|
||||
Route::post('/logout', [AuthController::class, 'logout'])->name('logout')->middleware('auth');
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/account', [AccountController::class, 'show'])->name('account');
|
||||
Route::post('/account', [AccountController::class, 'update'])->name('account.update');
|
||||
Route::get('/account/orders/{order}', [OrderController::class, 'show'])->name('account.orders.show');
|
||||
});
|
||||
|
||||
Route::prefix('admin')->name('admin.')->group(function () {
|
||||
Route::get('login', [AdminAuthController::class, 'showLoginForm'])->name('login');
|
||||
Route::post('login', [AdminAuthController::class, 'login'])
|
||||
->middleware('throttle:admin-login')
|
||||
->name('login.attempt');
|
||||
|
||||
Route::middleware([\App\Http\Middleware\AdminMiddleware::class])->group(function () {
|
||||
Route::post('logout', [AdminAuthController::class, 'logout'])->name('logout');
|
||||
Route::get('/', [AdminDashboardController::class, 'index'])->name('dashboard');
|
||||
Route::get('chats', [AdminChatController::class, 'index'])->name('chats.index');
|
||||
Route::get('chats/{conversation}/messages', [AdminChatController::class, 'messages'])
|
||||
->middleware('throttle:admin-chat-read')
|
||||
->name('chats.messages');
|
||||
Route::post('chats/{conversation}/messages', [AdminChatController::class, 'storeMessage'])
|
||||
->middleware('throttle:admin-chat-send')
|
||||
->name('chats.messages.store');
|
||||
Route::patch('chats/{conversation}/status', [AdminChatController::class, 'updateStatus'])
|
||||
->name('chats.status');
|
||||
Route::delete('chats/{conversation}', [AdminChatController::class, 'destroy'])
|
||||
->name('chats.destroy');
|
||||
Route::get('products/export/csv', [AdminProductController::class, 'exportCsv'])->name('products.export');
|
||||
Route::post('products/import/csv', [AdminProductController::class, 'importCsv'])->name('products.import');
|
||||
Route::resource('home-slides', AdminHomeSlideController::class)
|
||||
->parameters(['home-slides' => 'homeSlide'])
|
||||
->except('show');
|
||||
Route::resource('products', AdminProductController::class)->except('show');
|
||||
Route::resource('categories', AdminCategoryController::class)->except('show');
|
||||
Route::resource('orders', AdminOrderController::class)->only(['index', 'show', 'update']);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user