File: /var/www/app.ayokah.co.uk/routes/web.php
<?php
use App\Http\Controllers\Home;
use App\Http\Controllers\Frontend;
use App\Http\Controllers\Onboarding;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CartController;
use App\Http\Controllers\StripeController;
Route::controller(Onboarding::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/login', 'login')->name('login');
Route::get('/pin-login', 'pinLogin')->name('pin.login');
Route::get('/forget-pin', 'forgetPin')->name('forget.pin');
Route::get('/register', 'register')->name('register');
Route::get('/forget-password', 'forgetPassword')->name('forget.password');
Route::get('/reset-password', 'resetPassword')->name('reset.password');
Route::get('/verify-email', 'verifyEmail')->name('verify.email');
Route::get('/verify-email-account', 'verifyEmailAccount')->name('verify.email.account');
Route::post('/logout', 'logout')->name('logout')->middleware('token');
Route::get('/app-info', 'terms')->name('app.info');
Route::get('/app-privacy', 'privacy')->name('app.privacy');
Route::get('/app-shop-guide', 'shopGuide')->name('app.shop.guide');
Route::get('/app-product-guide', 'productGuide')->name('app.product.guide');
Route::get('/allow-location', 'AllowLocation')->name('allow.location');
});
// this need authentication and right for sellers only
Route::middleware(['token', 'seller'])->controller(Home::class)->group(function () {
Route::get('/onboard_seller', 'seller')->name('onboard.seller');
Route::get('/shop', 'shop')->name('shop');
//orders
Route::get('/shop-orders', 'orders')->name('orders');
//products
Route::get('/shop-products', 'products')->name('products');
Route::get('/add-product', 'addProduct')->name('add.product');
Route::get('/update-product/{uuid}', 'updateProduct')->name('update.product');
//wallet
Route::get('/shop-wallet', 'wallet')->name('wallet');
//categories
Route::get('/shop-categories', 'categories')->name('category');
//seller setting
Route::get('/shop-bank-setting', 'bankSetting')->name('shop.bank');
Route::get('/shop-pickup-address', 'pickupAddress')->name('shop.pickup.address');
//seller shop info
Route::get('/shop-info', 'info')->name('shop.info');
Route::get('/shop-update', 'updateShop')->name('shop.update');
//Coupon
Route::get('/shop-coupon', 'coupon')->name('shop.coupon');
Route::get('/add-coupon', 'addCoupon')->name('add.coupon');
//stripe payment
Route::get('/seller-payment', 'payment')->name('seller.payment');
Route::post('/save-payment-method', 'savePaymentMethod')->name('save.payment.method');
});
// for only customers and ask for token
Route::middleware(['token', 'customer'])->controller(CartController::class)->group(function () {
Route::get('/cart-item', 'index')->name('cart.index');
Route::get('/shipping-item', 'shipping')->name('cart.shipping');
Route::get('/track-item', 'tracking')->name('track.order');
Route::get('/show-tracking-item/{id}', 'showTracking')->name('show.tracking');
});
Route::middleware(['token', 'customer'])->controller(Home::class)->group(function () {
Route::get('/delivery-address', 'customerAddress')->name('customer.address');
Route::get('/wishlist', 'wishlist')->name('customer.wishlist');
Route::get('/order-history', 'OrderHistory')->name('customer.orders');
Route::get('/voucher', 'voucher')->name('customer.voucher');
Route::get('/notification-setting', 'notificationSettings')->name('customer.notification.settings');
});
Route::middleware(['token', 'customer'])->controller(StripeController::class)->group(function () {
Route::get('/stripe-payment_', 'showPaymentPage')->name('stripe.payment');
Route::post('/stripe-payment', 'processPayment')->name('stripe.process');
Route::get('/stripe-payment-success', 'successPayment')->name('stripe.success');
Route::get('/stripe-subscription-success', 'successSubscription')->name('stripe.success.subscription');
Route::get('/stripe-payment-failed', 'failedPayment')->name('stripe.failed');
});
// general request accessible for both
Route::middleware(['token'])->controller(Home::class)->group(function () {
//index
Route::get('/profile', 'profile')->name('profile');
Route::get('/customer-profile', 'customerProfile')->name('customer.profile');
Route::get('/update-profile', 'setting')->name('profile.setting');
Route::get('/security-setting', 'securitySetting')->name('security');
});
Route::middleware(['token', 'customer'])->controller(Frontend::class)->group(function () {
Route::get('/welcome', 'food')->name('food.index');
Route::get('/services', 'food')->name('service.index');
Route::get('/all-products', 'allProduct')->name('all.products');
Route::get('/all-shop-logo', 'allShopLogo')->name('all.shop.logo');
Route::get('/show-shop/{slug}', 'showShop')->name('show.shop');
Route::get('/all-categories', 'allCategory')->name('all.categories');
Route::get('/category-products/{slug}', 'categoryProducts')->name('category.products'); // show products that belongs to that category id
Route::get('/show-product/{slug}', 'showProduct')->name('show.product');
});