ldc-boutique-cnc/routes/web.php

247 lines
9.7 KiB
PHP
Raw Permalink Normal View History

2020-10-30 17:26:00 +01:00
<?php
use Illuminate\Support\Facades\Route;
2022-09-03 16:56:16 +02:00
// FRONT.
2022-03-19 11:59:26 +01:00
use App\Http\Controllers\IndexController;
2021-03-25 17:59:02 +01:00
use App\Http\Controllers\CustomerController;
2022-09-03 16:56:16 +02:00
// BO.
use App\Http\Controllers\Bo\DashboardController;
use App\Http\Controllers\Bo\ContentController;
use App\Http\Controllers\Bo\FaqController;
2020-11-05 17:08:32 +01:00
use App\Http\Controllers\Bo\SettingsController;
2021-04-06 14:08:57 +02:00
use App\Http\Controllers\Bo\OrdersController;
use App\Http\Controllers\Bo\CreneauxController;
2022-09-03 16:56:16 +02:00
// AUTH.
use App\Http\Controllers\Auth\LoginController;
2020-10-30 17:26:00 +01:00
/*
2022-08-25 12:26:43 +02:00
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
2020-10-30 17:26:00 +01:00
*/
2022-09-03 16:56:16 +02:00
2022-08-25 12:26:43 +02:00
if ((bool)config('bosettings.private_shop')) {
2022-03-19 11:26:12 +01:00
Route::middleware('auth:customer')
->group(function () {
require_once __DIR__ . '/web-shop.php';
});
} else {
require_once __DIR__ . '/web-shop.php';
}
2021-04-13 17:21:39 +02:00
2022-09-03 16:56:16 +02:00
// Must always be public routes.
2022-03-19 11:59:26 +01:00
Route::get('/mentions-legales', [IndexController::class, 'legalNotice'])->name('legal-notice');
Route::get('/politique-de-confidentialite', [IndexController::class, 'privacy'])->name('privacy');
Route::namespace('App\Http\Controllers\Bo')
->prefix('bo')
->name('bo.')
->middleware(['auth', 'is-admin'])
2022-09-03 16:56:16 +02:00
->group(
function () {
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
Route::match(['get', 'put'], '/content/{key}', [ContentController::class, 'manage'])->name('content');
Route::match(['get', 'put'], '/settings', [SettingsController::class, 'manage'])->name('settings');
2022-09-03 16:56:16 +02:00
Route::match(
['get', 'put'],
'/themesettings',
[SettingsController::class, 'manageTheme']
)->name('themesettings');
// FAQ.
Route::get('/faq', [FaqController::class, 'index'])->name('faq');
Route::post('/ajax/save-faq', [FaqController::class, 'saveDatas']);
Route::post('/ajax/delete-faq', [FaqController::class, 'destroy']);
2022-09-03 16:56:16 +02:00
// Creneaux.
Route::get('/magasins/{id}/creneaux', [CreneauxController::class, 'settings'])->name('creneaux.settings');
2022-09-03 16:56:16 +02:00
Route::post(
'/magasins/{id}/creneaux',
[CreneauxController::class, 'updateSettings']
)->name('creneaux.settings.update');
// Exceptions de collecte.
Route::post(
'/ajax/save-creneaux-exception',
[\App\Http\Controllers\Bo\MagasinsController::class, 'saveExceptions']
);
Route::post(
'/ajax/delete-creneaux-exception',
[\App\Http\Controllers\Bo\MagasinsController::class, 'destroyExceptions']
);
// Recherche d'inco.
Route::post('/ajax/check-inco-data', [\App\Http\Controllers\Bo\ProductsController::class, 'checkIncoData']);
2022-09-03 16:56:16 +02:00
Route::post(
'/ajax/get-inco-images',
[\App\Http\Controllers\Bo\ProductsController::class, 'getPrepareIncoImages']
);
Route::post('/ajax/set-inco-images', [\App\Http\Controllers\Bo\ProductsController::class, 'setIncoImage']);
2022-09-03 16:56:16 +02:00
// Produits.
// Route ajoutée avant la déclaration de route resource.
// Sinon la forme /products/{product} l'emporte lors du routage.
Route::get(
'/products/starred',
[\App\Http\Controllers\Bo\ProductsController::class, 'starred']
)->name('products.starred');
Route::get(
'/products/create/{product_type?}',
[\App\Http\Controllers\Bo\ProductsController::class, 'create']
)->name('products.create');
Route::resource(
'products',
'\App\Http\Controllers\Bo\ProductsController'
)->except(['create', 'show']);
Route::resource(
'slides',
SlidesController::class
)->except(['show']);
Route::resource(
'sliders',
SlidersController::class
)->except(['show']);
Route::resource(
'tags',
TagsController::class
)->except(['show']);
Route::resource(
'promotions',
PromotionsController::class
)->except(['show']);
Route::resource(
'magasins',
MagasinsController::class
)->except(['show']);
2021-04-08 18:05:17 +02:00
2021-04-14 17:33:55 +02:00
Route::resources([
2022-09-03 16:56:16 +02:00
'ranges' => RangesController::class
2021-04-14 17:33:55 +02:00
]);
2021-04-13 17:21:39 +02:00
2022-09-03 16:56:16 +02:00
Route::get(
'/slide/change-order/{id}/{action}',
[App\Http\Controllers\Bo\SlidesController::class, 'changeOrder']
)->name('slides.change-order');
Route::get(
'/tag/change-order/{id}/{action}',
[App\Http\Controllers\Bo\TagsController::class, 'changeOrder']
)->name('tags.change-order');
Route::get(
'/tag/toggle-status/{id}',
[App\Http\Controllers\Bo\TagsController::class, 'toggleStatus']
)->name('tags.toggle-status');
Route::get(
'/customer-info/{id}/{mode?}',
[OrdersController::class, 'getCustomerInfo']
)->name('get-customer-info');
Route::get(
'/magasin-info/{id}/{mode?}',
[App\Http\Controllers\Bo\MagasinsController::class, 'getMagasinInfo']
)->name('get-magasin-info');
2021-04-13 17:21:39 +02:00
2022-09-03 16:56:16 +02:00
// Commandes.
2020-11-17 13:41:31 +01:00
Route::get('/orders', [OrdersController::class, 'index'])->name('orders');
Route::get('/orders/today', [OrdersController::class, 'today'])->name('orders.today');
2021-04-13 18:45:36 +02:00
Route::get('/orders/{reference}', [OrdersController::class, 'orderDetail'])->name('order-detail');
2022-09-03 16:56:16 +02:00
Route::get(
'/orders/{reference}/advance',
[OrdersController::class, 'changeStatus']
)->name('change-order-status');
2020-11-17 13:41:31 +01:00
Route::get('/orders/{reference}/cancel', [OrdersController::class, 'cancelOrder'])->name('cancel-order');
Route::post('/orders/add', [OrdersController::class, 'addProduct'])->name('order-add-product');
2022-09-03 16:56:16 +02:00
}
);
2022-09-03 16:56:16 +02:00
// Actions sur les comptes utilisateurs.
2021-03-27 20:55:16 +01:00
Route::name('auth.')
2022-09-03 16:56:16 +02:00
->group(
function () {
// Bo connect.
2021-03-26 16:10:56 +01:00
Route::get('/bo/login', [LoginController::class, 'index'])->name('login')->middleware('guest');
Route::post('/bo/login', [LoginController::class, 'login'])->name('login.post')->middleware('guest');
Route::get('/bo/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth:web');
2022-09-03 16:56:16 +02:00
// Customer connect.
Route::get(
'/connexion',
[CustomerController::class, 'authenticateForm']
)->name('connexion')->middleware('guest');
Route::post(
'/connexion',
[CustomerController::class, 'authenticate']
)->name('connexion.post')->middleware('guest');
Route::get(
'/deconnexion',
[CustomerController::class, 'logout']
)->name('deconnexion')->middleware('auth:customer');
// Customer inscription.
Route::get(
'/inscription',
[CustomerController::class, 'registerForm']
)->name('register')->middleware('guest');
Route::post(
'/inscription',
[CustomerController::class, 'register']
)->name('register.post')->middleware('guest');
2021-03-26 16:10:56 +01:00
Route::get('/activer/{hashcode}', [CustomerController::class, 'activate'])->name('activer');
2022-09-03 16:56:16 +02:00
// Formulaire de demande de réinit.
2021-03-26 16:10:56 +01:00
Route::get('/mot-de-passe-oublie', [CustomerController::class, 'forgotPasswordForm'])->name('forgot-password');
2022-09-03 16:56:16 +02:00
// Réinit et envoi mail.
2021-03-26 16:10:56 +01:00
Route::post('/reinitialiser-mdp', [CustomerController::class, 'passwordReset'])->name('reinit-mdp');
2022-09-03 16:56:16 +02:00
// Formulaire reinit.
Route::get(
'/reinitialiser-mdp/{token}',
[CustomerController::class, 'viewChangePassword']
)->name('form-change-mdp');
// Changement en crm.
Route::post(
'/reinitialiser-mdp/{token}',
[CustomerController::class, 'changePassword']
)->name('change-password');
}
);
2021-03-27 20:55:16 +01:00
2021-04-13 13:50:25 +02:00
Route::name('account.')
->prefix('compte')
->middleware('auth:customer')
2022-09-03 16:56:16 +02:00
->group(
function () {
2021-04-13 13:50:25 +02:00
Route::get('/profil', [CustomerController::class, 'dashboard'])->name('dashboard');
Route::post('/profil', [CustomerController::class, 'updateInfos'])->name('update-infos');
2022-09-03 16:56:16 +02:00
Route::post(
'/profil/change-mdp',
[CustomerController::class, 'changePasswordWhenAuthenticated']
)->name('change-password');
2021-04-14 09:34:23 +02:00
Route::get('/commandes', [CustomerController::class, 'myOrders'])->name('my-orders');
Route::get('/commandes/{reference}', [CustomerController::class, 'orderDetail'])->name('order-detail');
Route::get('/commandes/{reference}/annuler', [CustomerController::class, 'cancelOrder'])->name('cancel-order');
2022-09-03 16:56:16 +02:00
}
);
2021-04-13 13:50:25 +02:00
2022-09-03 16:56:16 +02:00
// Tunnel de commande.
2021-03-27 20:55:16 +01:00
Route::prefix('commande')
->name('sales.')
->middleware('auth:customer')
->group(function () {
2022-09-03 16:56:16 +02:00
// Puisqu'on a le middleware on s'épargne une étape.
// Recap.
2021-03-27 20:55:16 +01:00
Route::get('/recap', [OrdersController::class, 'recapOrder' ])->name('recap');
Route::post('/recap', [OrdersController::class, 'store' ])->name('order-init');
2022-09-03 16:56:16 +02:00
// Choice timeslot.
2021-03-29 15:10:07 +02:00
Route::get('/collect/{reference}', [OrdersController::class, 'timeSlotPick' ])->name('pick-slot');
2021-03-27 20:55:16 +01:00
Route::post('/collect', [OrdersController::class, 'setTimeSlot' ])->name('order-save-slot');
2022-09-03 16:56:16 +02:00
// Confirm.
2021-03-29 15:10:07 +02:00
Route::get('/confirm/{reference}', [OrdersController::class, 'confirmOrder' ])->name('confirm');
2022-09-03 16:56:16 +02:00
// Test generation de commande.
2021-07-26 14:33:39 +02:00
Route::get('/generate/{reference}', [OrdersController::class, 'generateOrder' ])->name('generate');
2021-03-27 20:55:16 +01:00
});