ldc-boutique-cnc/routes/web-bo.php
2023-03-22 17:17:55 +01:00

162 lines
7.4 KiB
PHP

<?php
use App\Http\Controllers\Bo\ContactMessagesController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Bo\TimeslotController;
use App\Http\Controllers\Bo\DashboardController;
use App\Http\Controllers\Bo\DeliveryModeController;
use App\Http\Controllers\Bo\GeneralConfigController;
use App\Http\Controllers\Bo\ShopController;
use App\Http\Controllers\Bo\OrderController;
use App\Http\Controllers\Bo\ProductController;
use App\Http\Controllers\Bo\DiscountController;
use App\Http\Controllers\Bo\PaymentModeController;
use App\Http\Controllers\Bo\SlideController;
use App\Http\Controllers\Bo\StaticPageController;
use App\Http\Controllers\Bo\TagController;
use App\Http\Controllers\Bo\RangeController;
use App\Http\Controllers\Bo\XmlIncoController;
use Illuminate\Support\Facades\Auth;
Route::prefix('bo')->name('bo.')->group(function () {
Route::namespace('\App\Http\Controllers\Bo')->group(function () {
Auth::routes([
'login' => true,
'logout' => true,
'register' => false,
// For resetting passwords.
'reset' => false,
// For additional password confirmations.
'confirm' => false,
// For email verification.
'verify' => false,
]);
});
Route::middleware('auth:backend')->group(function () {
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
// * RESOURCES
// * StaticPages
Route::resource('static_pages', StaticPageController::class)
->withoutMiddleware('htmlsanitize')
->middleware(['htmlsanitize:value']);
// * ContactMessages
Route::resource('contacts', ContactMessagesController::class)
->only(['index', 'show', 'destroy']);
Route::post('/contacts/{contact}/done', [ContactMessagesController::class, 'done'])
->name('contacts.done');
// * Slides
Route::resource('slides', SlideController::class)->except(['show'])
->withoutMiddleware('htmlsanitize')
->middleware(['htmlsanitize:text']);
Route::post('/slides/{slide}/change-order/{action}', [SlideController::class, 'changeOrder'])
->where('action', 'up|down')
->name('slides.change-order');
// * Ranges
Route::resource('ranges', RangeController::class)->except(['show'])
->withoutMiddleware('htmlsanitize')
->middleware(['htmlsanitize:description']);
Route::post('/ranges/{range}/change-published', [RangeController::class, 'changePublished'])
->name('ranges.change-published');
// * Config
Route::resource('general_configs', GeneralConfigController::class)
->except(['show', 'create', 'store', 'destroy'])
->withoutMiddleware('htmlsanitize')
->middleware('htmlsanitize:text');
// * Payment Modes
Route::resource('payment_modes', PaymentModeController::class)
->only(['index', 'edit', 'update']);
Route::post('/payment-modes/{payment_mode}/change-status', [
PaymentModeController::class, 'changeStatus'
])->name('payment_modes.change-status');
// * Delivery Modes
Route::resource('delivery_modes', DeliveryModeController::class)
->only(['index', 'edit', 'update']);
Route::post('/delivery-modes/{delivery_mode}/change-status', [
DeliveryModeController::class, 'changeStatus'
])->name('delivery_modes.change-status');
// * Products
Route::get('/products/starred', [ProductController::class, 'starred'])->name('starredProducts');
Route::resource('products', ProductController::class)->except(['show'])
->withoutMiddleware('htmlsanitize')
->middleware(['htmlsanitize:description,data']);
Route::post(
'/products/{product}/setinco/{xml_inco}/picture/{picture_index}',
[ProductController::class, 'copyXmlIncoPicture']
)->where('picture_index', '[0-9]')->name('products.copyXmlIncoPicture');
Route::post('/products/{product}/setinco/{xml_inco}', [ProductController::class, 'associateXmlInco'])
->name('products.associateXmlInco');
Route::post('/products/{product}/change-published', [ProductController::class, 'changePublished'])
->name('products.change-published');
// * XML INCO
Route::get('/xml_incos/search', [XmlIncoController::class, 'getXmlIncos'])->name('xml_incos.getXmlIncos');
Route::get('/xml_incos/picture/{inco_picture}', [XmlIncoController::class, 'getXmlIncoPicture'])
->where('inco_picture', '.+[a-zA-Z0-9_-]+\.(png|jpg|jpeg)')
->name('xml_incos.getXmlIncoPicture');
// * Tags
Route::resource('tags', TagController::class)->except(['show']);
Route::post('/tags/store', [TagController::class, 'jsonStore'])->name('tags.jsonStore');
Route::post('/tags/{tag}/change-order', [TagController::class, 'changeOrder'])
->name('tags.change-order');
Route::post('/tags/{tag}/change-published', [TagController::class, 'changePublished'])
->name('tags.change-published');
// * Discounts
Route::resource('discounts', DiscountController::class)->except(['show']);
Route::post('/discounts/{discount}/change-published', [DiscountController::class, 'changePublished'])
->name('discounts.change-published');
// * Timeslots
Route::get('/magasins/{shop}/timeslots', [TimeslotController::class, 'settings'])->name('timeslots.settings');
Route::put(
'/magasins/{shop}/timeslots',
[TimeslotController::class, 'updateSettings']
)->name('timeslots.settings.update');
// * CollectionExceptions
Route::post(
'/ajax/shops/{shop}/collection_exceptions/save',
[\App\Http\Controllers\Bo\ShopController::class, 'saveExceptions']
)->name('shops.collection_exceptions.save');
Route::post(
'/ajax/shops/{shop}/collection_exceptions/delete',
[\App\Http\Controllers\Bo\ShopController::class, 'destroyExceptions']
)->name('shops.collection_exceptions.delete');
// * Shops
Route::resource('shops', ShopController::class)->except(['show']);
// * Orders
Route::get('/orders/today', [OrderController::class, 'indexToday'])->name('orders.today');
Route::resource('orders', OrderController::class)->only([
'index', 'show'
]);
Route::put('/orders/{order}/set-validate', [
OrderController::class, 'changeValidationStatus'
])->name('orders.validation-status');
Route::put('/orders/{order}/set-delivery', [
OrderController::class, 'changeDeliveryStatus'
])->name('orders.delivery-status');
Route::get('/orders/{order}/prepare', [OrderController::class, 'prepare'])->name('orders.prepare');
Route::post('/orders/{order}/prepare', [OrderController::class, 'prepareSubmit'])
->name('orders.prepare-submit');
Route::post('/orders/{order}/refund', [OrderController::class, 'refundSubmit'])
->name('orders.refund-submit');
Route::post('/orders/{order}/refund-submit', [OrderController::class, 'cancelRefundSubmit'])
->name('orders.cancel-refund-submit');
Route::get(
'/commandes/{reference}/transaction/{transactionReference}/invoice',
[OrderController::class, 'downloadTransactionInvoice']
)->name('orders.invoice');
});
});