web.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | Web Routes
  5. |--------------------------------------------------------------------------
  6. |
  7. | Here is where you can register web routes for your application. These
  8. | routes are loaded by the RouteServiceProvider within a group which
  9. | contains the "web" middleware group. Now create something great!
  10. |
  11. */
  12. use Illuminate\Support\Facades\Auth;
  13. use Illuminate\Support\Facades\Route;
  14. /**
  15. * Admin routes
  16. */
  17. Route::namespace('Admin')->group(function () {
  18. Route::get('admin/login', 'LoginController@showLoginForm')->name('admin.login');
  19. Route::post('admin/login', 'LoginController@login')->name('admin.login');
  20. Route::get('admin/logout', 'LoginController@logout')->name('admin.logout');
  21. });
  22. Route::group(['prefix' => 'admin', 'middleware' => ['employee'], 'as' => 'admin.' ], function () {
  23. Route::namespace('Admin')->group(function () {
  24. Route::group(['middleware' => ['role:admin|superadmin|clerk, guard:employee']], function () {
  25. Route::get('/', 'DashboardController@index')->name('dashboard');
  26. Route::namespace('Products')->group(function () {
  27. Route::resource('products', 'ProductController');
  28. Route::get('remove-image-product', 'ProductController@removeImage')->name('product.remove.image');
  29. Route::get('remove-image-thumb', 'ProductController@removeThumbnail')->name('product.remove.thumb');
  30. });
  31. Route::namespace('Customers')->group(function () {
  32. Route::resource('customers', 'CustomerController');
  33. Route::resource('customers.addresses', 'CustomerAddressController');
  34. });
  35. Route::namespace('Categories')->group(function () {
  36. Route::resource('categories', 'CategoryController');
  37. Route::get('remove-image-category', 'CategoryController@removeImage')->name('category.remove.image');
  38. });
  39. Route::namespace('Orders')->group(function () {
  40. Route::resource('orders', 'OrderController');
  41. Route::resource('order-statuses', 'OrderStatusController');
  42. Route::get('orders/{id}/invoice', 'OrderController@generateInvoice')->name('orders.invoice.generate');
  43. });
  44. Route::resource('addresses', 'Addresses\AddressController');
  45. Route::resource('countries', 'Countries\CountryController');
  46. Route::resource('countries.provinces', 'Provinces\ProvinceController');
  47. Route::resource('countries.provinces.cities', 'Cities\CityController');
  48. Route::resource('couriers', 'Couriers\CourierController');
  49. Route::resource('attributes', 'Attributes\AttributeController');
  50. Route::resource('attributes.values', 'Attributes\AttributeValueController');
  51. Route::resource('brands', 'Brands\BrandController');
  52. });
  53. Route::group(['middleware' => ['role:admin|superadmin, guard:employee']], function () {
  54. Route::resource('employees', 'EmployeeController');
  55. Route::get('employees/{id}/profile', 'EmployeeController@getProfile')->name('employee.profile');
  56. Route::put('employees/{id}/profile', 'EmployeeController@updateProfile')->name('employee.profile.update');
  57. Route::resource('roles', 'Roles\RoleController');
  58. Route::resource('permissions', 'Permissions\PermissionController');
  59. });
  60. });
  61. });
  62. /**
  63. * Frontend routes
  64. */
  65. Auth::routes();
  66. Route::namespace('Auth')->group(function () {
  67. Route::get('cart/login', 'CartLoginController@showLoginForm')->name('cart.login');
  68. Route::post('cart/login', 'CartLoginController@login')->name('cart.login');
  69. Route::get('logout', 'LoginController@logout');
  70. });
  71. Route::namespace('Front')->group(function () {
  72. Route::get('/', 'HomeController@index')->name('home');
  73. Route::group(['middleware' => ['auth', 'web']], function () {
  74. Route::namespace('Payments')->group(function () {
  75. Route::get('bank-transfer', 'BankTransferController@index')->name('bank-transfer.index');
  76. Route::post('bank-transfer', 'BankTransferController@store')->name('bank-transfer.store');
  77. });
  78. Route::namespace('Addresses')->group(function () {
  79. Route::resource('country.state', 'CountryStateController');
  80. Route::resource('state.city', 'StateCityController');
  81. });
  82. Route::get('accounts', 'AccountsController@index')->name('accounts');
  83. Route::get('checkout', 'CheckoutController@index')->name('checkout.index');
  84. Route::post('checkout', 'CheckoutController@store')->name('checkout.store');
  85. Route::get('checkout/execute', 'CheckoutController@executePayPalPayment')->name('checkout.execute');
  86. Route::post('checkout/execute', 'CheckoutController@charge')->name('checkout.execute');
  87. Route::get('checkout/cancel', 'CheckoutController@cancel')->name('checkout.cancel');
  88. Route::get('checkout/success', 'CheckoutController@success')->name('checkout.success');
  89. Route::resource('customer.address', 'CustomerAddressController');
  90. });
  91. Route::resource('cart', 'CartController');
  92. Route::get("category/{slug}", 'CategoryController@getCategory')->name('front.category.slug');
  93. Route::get("search", 'ProductController@search')->name('search.product');
  94. Route::get("{product}", 'ProductController@show')->name('front.get.product');
  95. });