ldc-legaulois/routes/web.php
2021-04-08 20:06:14 +02:00

286 lines
16 KiB
PHP

<?php
use App\Http\Controllers\Bo\OCBBreedersController;
use App\Http\Controllers\Bo\OCBContentController;
use App\Http\Controllers\Bo\DashboardController;
use App\Http\Controllers\Bo\FaqThemesController;
use App\Http\Controllers\Bo\HomeSliderPicturesController;
use App\Http\Controllers\Bo\JoinusController;
use App\Http\Controllers\Bo\NewsSliderPicturesController;
use App\Http\Controllers\Bo\ProductsController as BoProductsController;
use App\Http\Controllers\Bo\ProductSliderPicturesController;
use App\Http\Controllers\Bo\RangesController;
use App\Http\Controllers\Bo\RecipesController as BoRecipesController;
use App\Http\Controllers\Bo\ReductionsController;
use App\Http\Controllers\Bo\TraceabilityController as BoTraceabilityController;
use App\Http\Controllers\BourseController;
use App\Http\Controllers\BoutiqueController;
use App\Http\Controllers\BrandController;
use App\Http\Controllers\ClubController;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\CustomerController;
use App\Http\Controllers\FaqController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\MapController;
use App\Http\Controllers\MomentsController;
use App\Http\Controllers\OCBController;
use App\Http\Controllers\OnePageController;
use App\Http\Controllers\ProductsController;
use App\Http\Controllers\RecipesController;
use App\Http\Controllers\TraceabilityController;
use App\Http\Middleware\Authenticate;
use App\Http\Middleware\EncryptCookies;
use App\Http\Middleware\VerifyCsrfToken;
use App\Http\Middleware\XssSanitizer;
use App\Models\PageJoinus;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use Illuminate\View\Middleware\ShareErrorsFromSession;
/*
|--------------------------------------------------------------------------
| 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!
|
* ATTENTION chaque route ajoutée peut se retrouver dans le Sitemap si la méthode est GET
* Merci de vérifier si elle doit être incluse, le cas échéant l'ajouter dans Jobs/RefreshSiteMap.php
* pour être exclue du sitemap
*/
Auth::routes([
'reset' => false,
'verify' => false,
'register' => false
]);
// phpcs:disable Generic.Files.LineLength.TooLong
Route::prefix('bo')
->name('bo.')
->middleware(['auth', 'is-admin'])
->group(function () {
Route::namespace('Bo')->group(function () {
Route::resource('ads', 'AdsController');
Route::resource('articles', 'ArticlesController');
Route::resource('balanced-menus', 'BalancedMenusController');
Route::resource('ocbbreeders', 'OCBBreedersController')->except([
'index', 'edit', 'show', 'update'
]);
Route::resource('consumption-times', 'ConsumptionTimesController');
Route::resource('faq-questions', 'FaqQuestionsController');
Route::resource('faq-themes', 'FaqThemesController');
Route::resource('home-slider-pictures', 'HomeSliderPicturesController');
Route::resource('meat-types', 'MeatTypesController');
Route::resource('moments', 'MomentsController');
Route::resource('news-slider-pictures', 'NewsSliderPicturesController');
Route::resource('ocb', 'OCBContentController');
Route::resource('product-pictograms', 'ProductPictogramsController');
Route::resource('product-slider-pictures', 'ProductSliderPicturesController');
Route::resource('products', 'ProductsController')->except(['show']);
Route::resource('ranges', 'RangesController');
Route::resource('recipes', 'RecipesController')->except(['show']);
Route::resource('users', 'UsersController');
});
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
Route::put('/ocbbreeders/{breeder}', [OCBBreedersController::class, 'update'])->name('ocbbreeders.update');
Route::get('/ocbbreeders/{type}/{breeder}', [OCBBreedersController::class, 'edit'])->name('ocbbreeders.edit');
Route::get('/ocbbreeders/{type}', [OCBBreedersController::class, 'index'])->name('ocbbreeders.index');
Route::get('/faq-themes/change-order/{id}/{action}', [FaqThemesController::class, 'changeOrder'])->name('faq-themes.change-order');
Route::get('/home-slider-pictures/change-order/{id}/{action}', [HomeSliderPicturesController::class, 'changeOrder'])->name('home-slider-pictures.change-order');
Route::get('/moments/change-star/{id}', [MomentsController::class, 'setStar'])->name('moments.change-star');
Route::get('/news-slider-pictures/change-order/{id}/{action}', [NewsSliderPicturesController::class, 'changeOrder'])->name('news-slider-pictures.change-order');
Route::get('/ocb/change-order/{id}/{type}/{action}', [OCBContentController::class, 'changeOrder'])->name('ocb.change-order');
Route::get('/ocb/content/{type}', [OCBContentController::class, 'index'])->name('ocb.content');
Route::get('/product-slider-pictures/change-order/{id}/{action}', [ProductSliderPicturesController::class, 'changeOrder'])->name('product-slider-pictures.change-order');
Route::get('/products/change-order/{id}/{action}', [BoProductsController::class, 'changeOrder'])->name('products.change-order');
Route::get('/products/change-star/{id}', [BoProductsController::class, 'changeStar'])->name('products.change-star');
Route::get('/ranges/change-order/{id}/{action}', [RangesController::class, 'changeOrder'])->name('ranges.change-order');
Route::get('/recipes/highlights/choice', [BoRecipesController::class, 'highlights'])->name('recipes.highlights');
Route::get('/reductions', [ReductionsController::class, 'index'])->name('reductions.index');
Route::get('/reductions/update', [ReductionsController::class, 'updateBR'])->name('reductions.update-br');
Route::get('/traceability', [BoTraceabilityController::class, 'index'])->name('traceability.index');
Route::get('/page/joinus', [JoinusController::class, 'index'])->name('page.joinus.index');
Route::post('/ajax/reductions/save', [ReductionsController::class, 'saveDatas']);
Route::put('/recipes/highlights/store', [BoRecipesController::class, 'storeHighlights'])->name('recipes.store-highlights');
Route::put('/traceability/filters', [BoTraceabilityController::class, 'filter'])->name('traceability.filter');
Route::put('/page/joinus', [JoinusController::class, 'update'])->name('page.joinus.update');
});
Route::get('/', [HomeController::class, 'index'])->name('home');
Route::get('/de-smaak-om-te-delen', [OnePageController::class, 'index'])->name('home-nl');
// Route ajax pour Single Optin
Route::post('/optin', [HomeController::class, 'addOptIn'])->name('add-single-optin');
Route::get('/activer/{hashcode}', [CustomerController::class, 'activate'])->name('activer');
Route::get('/connexion', [CustomerController::class, 'authenticateForm'])->name('form-connexion');
Route::get('/deconnexion', [CustomerController::class, 'logout'])->name('deconnexion')->middleware('auth:customer');
Route::get('/inscription', [CustomerController::class, 'registerForm'])->name('form-inscription');
Route::get('/reinitialiser-mot-de-passe/{token}', [CustomerController::class, 'viewChangePassword'])->name('form-change-mdp');
Route::post('/connexion', [CustomerController::class, 'authenticate'])->name('connexion');
Route::post('/inscription', [CustomerController::class, 'register'])->name('inscription');
Route::post('/reinitialiser-mot-de-passe', [CustomerController::class, 'passwordReset'])->name('reinit-mdp');
Route::post('/reinitialiser-mot-de-passe/{token}', [CustomerController::class, 'changePassword'])->name('change-mdp');
Route::get('/contactez-nous', [ContactController::class, 'contact'])->name('contact-us');
Route::get('/reclamation-produit', [ContactController::class, 'complain'])->name('product-request');
Route::post('/contactez-nous', [ContactController::class, 'contactSubmit'])->name('contact-us.submit');
Route::post('/reclamation-produit', [ContactController::class, 'complainSubmit'])->name('product-request.submit');
Route::get('/faq', [FaqController::class, 'index'])->name('faq');
Route::post('/faq/{question?}', [FaqController::class, 'updateSatisfactionStat'])->name('faq.updateSatisfactionStat');
Route::view('/mentions-legales', 'front.legals')->name('legal-notice');
Route::prefix('/produits')
->name('products.')
->group(function () {
Route::get('/', [ProductsController::class, 'index'])->name('index');
Route::get('/departaimants', [ProductsController::class, 'departaimants'])->name('departaimants');
Route::get('/gamme/{gammeSlug}', [ProductsController::class, 'filter'])->name('range');
Route::get('/moment-consommations/{slugMoment}', [ProductsController::class, 'filter'])->name('consumption-times');
Route::get('/type-viande/{slugTypeViande}', [ProductsController::class, 'filter'])->name('meat-type');
});
Route::prefix('/produit')
->name('product.')
->group(function () {
Route::get('/from-menus', [ProductsController::class, 'indexMenusAjax'])->name('from-menus');
Route::get('/{product}', [ProductsController::class, 'show'])->name('show');
});
Route::prefix('/cote-cuisine')->name('kitchen-side.')->group(function () {
Route::get('/', [RecipesController::class, 'kitchenside'])->name('index');
Route::prefix('/recettes')->name('recipes.')->group(function () {
Route::get('/', [RecipesController::class, 'index'])->name('index');
Route::post('/rate/{recipe:slug}', [RecipesController::class, 'rate'])->name('rate');
Route::get('/{recipe:slug}', [RecipesController::class, 'show'])->name('show');
});
Route::prefix('/sante-et-nutrition')->name('health-nutrition.')->group(function () {
Route::get('/menu-equilibre-j/{type}/{product}/menu', [RecipesController::class, 'showForBalancedMenu'])->name('balanced-menu.menu');
Route::view('/', 'front.health-nutrition.health-nutrition')->name('index');
Route::view('/dechiffrez-valeurs-nutritionnelles', 'front.health-nutrition.nutritional-values')->name('nutritional-values');
Route::view('/engagement-nutrition', 'front.health-nutrition.nutrition')->name('nutrition');
Route::view('/menu-equilibre', 'front.health-nutrition.balanced-menu')->name('balanced-menu');
Route::view('/plaisir-et-equilibre', 'front.health-nutrition.pleasure-balance')->name('pleasure-balance');
});
});
Route::prefix('/recettes')
->name('recipes.')
->group(function () {
Route::get('/', [RecipesController::class, 'index'])->name('index');
Route::get('/proposer-une-recette', [ContactController::class, 'proposeRecipe'])->name('propose');
Route::post('/rate/{recipe:slug}', [RecipesController::class, 'rate'])->name('rate');
Route::get('/{recipe:slug}', [RecipesController::class, 'show'])->name('show');
});
Route::prefix('/la-marque')
->name('brand.')
->group(function () {
Route::get('/', [BrandController::class, 'index'])->name('index');
Route::get('/saga-publicitaire', [BrandController::class, 'ads'])->name('pub');
Route::get('/tracabilite/search', [TraceabilityController::class, 'search'])->name('traceability-search');
Route::view('/nos-engagements-qualite', 'front.brand.quality')->name('our-quality-commitments');
Route::view('/notre-histoire', 'front.brand.history')->name('history');
Route::view('/tracabilite', 'front.brand.traceability')->name('traceability');
Route::view('/volailles-francaises', 'front.brand.poultry')->name('french-poultry');
});
Route::prefix('/oui-cest-bon')
->name('ocb.')
->group(function () {
Route::get('/eleveurs/{breeder}', [OCBController::class, 'breeder'])->name('breeders');
Route::get('/temoignages-eleveurs', [OCBController::class, 'testimonials'])->name('testimonials');
Route::get('/volaille', [OCBController::class, 'poultry'])->name('poultry');
Route::view('/', 'front.ocb.index')->name('index');
Route::view('/oeuf', 'front.ocb.egg')->name('egg');
});
Route::get('/map/breeders', [MapController::class, 'breeders'])->name('map.breeders');
Route::get('/en-ce-moment/{moment}', [MomentsController::class, 'index'])->name('moment');
Route::get('/nous-rejoindre', function () {
return view('front.joinus', ['joinus' => PageJoinus::firstOrFail()]);
})->name('joinus');
Route::prefix('/le-club-des-gaulois')
->name('club.')
->group(function () {
Route::get('/les-infos-du-club/{publishedArticle}', [ClubController::class, 'article'])->name('infos.child');
Route::post('/les-infos-du-club/repondre-sondage', [ClubController::class, 'answerSurvey'])->name('infos.answer-survey');
Route::prefix('/la-bourse-aux-echanges')
->name('bourse.')
->middleware('auth:customer')
->group(function () {
Route::get('/', [BourseController::class, 'bourse'])->name('index');
Route::post('/save-state/{type}', [BourseController::class, 'bourseSaveState'])->name('saveState');
Route::post('/search/{type}', [BourseController::class, 'bourseSearch'])->name('search');
});
Route::get('/les-promos', [ClubController::class, 'reductions'])->name('reductions')
->middleware('auth:customer');
Route::prefix('/la-boutique')
->middleware('auth:customer') // Il faut être connecté pour acceder à la boutique
->name('boutique.')
->group(function () {
Route::get('/', [BoutiqueController::class, 'index'])->name('index');
Route::get('/erreur', [BoutiqueController::class, 'boutique'])->name('error');
Route::post('/validation', [BoutiqueController::class, 'validateBuy'])->name('validate');
Route::prefix('commande')
->group(function () {
Route::get('{order}/valide', [BoutiqueController::class, 'validatedBuy'])->name('validated');
Route::get('{order}/reglement', [BoutiqueController::class, 'payWithCb'])->name('payementCB');
});
Route::prefix('/reglement')
->name('reglement.')
->group(function () {
Route::post('/{order}/confirmServ', [BoutiqueController::class, 'confirmCbFromMercanet'])
->name('payementConfirmCBServ')->withoutMiddleware([
Authenticate::class,
AddQueuedCookiesToResponse::class,
EncryptCookies::class,
VerifyCsrfToken::class,
StartSession::class,
ShareErrorsFromSession::class,
XssSanitizer::class,
]);
Route::post('/{order}/confirm', [BoutiqueController::class, 'confirmCb'])
->name('payementConfirmCB')->withoutMiddleware([
Authenticate::class,
AddQueuedCookiesToResponse::class,
EncryptCookies::class,
VerifyCsrfToken::class,
StartSession::class,
ShareErrorsFromSession::class,
XssSanitizer::class,
]);
});
});
Route::match(['get', 'post'], '/{category?}', [ClubController::class, 'index'])->name('index');
});
Route::prefix('/mon-compte')
->name('account.')
->middleware('auth:customer')
->group(function () {
Route::get('/liste-de-courses', [ClubController::class, 'cart'])->name('cart');
Route::get('/mes-informations', [ClubController::class, 'infos'])->name('infos');
Route::get('/messages', [ClubController::class, 'messages'])->name('messages');
Route::get('/messages/report', [ContactController::class, 'reportCustomer'])->name('reportCustomer');
Route::get('/notifications', [ClubController::class, 'notifications'])->name('notifications');
Route::get('/recettes-favorites', [ClubController::class, 'favoritesRecipes'])->name('favs-recipes');
Route::post('/liste-de-courses/{product}/{status}', [CustomerController::class, 'setItemInCart'])->name('set-cart');
Route::post('/mes-informations', [ClubController::class, 'updateInfos'])->name('update-infos');
Route::post('/mes-informations/change-password', [CustomerController::class, 'changePasswordWhenAuthenticated'])->name('change-password');
Route::post('/messages/block/{status}', [ClubController::class, 'blockCustomer'])->name('blockCustomer');
Route::post('/messages/delete', [ClubController::class, 'deleteMessage'])->name('deleteMessage');
Route::post('/messages/send', [ClubController::class, 'sendMessage'])->name('sendMessage');
Route::post('/recettes-favorites/{recipe}/set-status/{status}', [CustomerController::class, 'setFavoriteRecipe'])->name('set-favs-recipes');
Route::redirect('/', '/mon-compte/mes-informations');
});