ldc-crm/routes/web.php
2023-06-23 13:30:17 +02:00

70 lines
3.4 KiB
PHP

<?php
use App\Http\Controllers\AnswerController;
use App\Http\Controllers\BrandController;
use App\Http\Controllers\CustomerController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\QuestionController;
use App\Http\Controllers\ServiceController;
use App\Http\Controllers\SingleOptinController;
use App\Http\Controllers\StatsController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| 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!
|
*/
Route::get('/login', [LoginController::class, 'index'])->name('login');
Route::post('/login', [LoginController::class, 'authenticate'])->name('authenticate');
Route::middleware(['auth'])->group(function () {
Route::get('/', function () {
return redirect()->route('brands.index');
})->name('home');
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
// * Marques
Route::resource('brands', BrandController::class)->except(['delete']);
Route::match(['get', 'post'], '/brand/manage/{brand?}', [BrandController::class, 'manage'])
->name('manage-brand');
Route::get('/brands/json/paginate', [BrandController::class, 'jsonPaginate'])
->name('brands.jsonPaginate');
// * Services
Route::resource('services', ServiceController::class)->except(['delete']);
Route::post('/services/{service}/token/generate', [ServiceController::class, 'generateServicePassword'])
->name('generate-token-service');
// * Clients
Route::get('/customers', [CustomerController::class, 'index'])->name('customers.index');
Route::get('/customers/{customer}/{brand}', [CustomerController::class, 'show'])->name('customers.show');
Route::delete('/customers/{customer}/{brand}', [CustomerController::class, 'delete'])->name('customers.delete');
Route::get('/customers/export', [CustomerController::class, 'export'])->name('customers.export');
Route::post('/customers/export', [CustomerController::class, 'exportSubmit'])->name('customers.exportSubmit');
// * Single optins
Route::resource('single_optins', SingleOptinController::class);
Route::post('/single_optins/{id}/delete', [SingleOptinController::class, 'delete'])->name('single-optins-delete');
// * Questions
Route::get('/questions/export', [QuestionController::class, 'export'])->name('questions.export');
Route::post('/questions/export', [QuestionController::class, 'exportSubmit'])->name('questions.exportSubmit');
Route::resource('questions', QuestionController::class);
Route::resource('questions.answers', AnswerController::class);
// * Stats
Route::match(['get', 'post'], '/stats/brand', [StatsController::class, 'viewStatsByBrand'])
->name('stats.viewByBrand');
Route::get('/stats/brand/csv', [StatsController::class, 'exportByBrandCsv'])
->name('stats.viewByBrandExportCsv');
Route::match(['get', 'post'], '/stats/question', [StatsController::class, 'viewByQuestion'])
->name('stats.viewByQuestion');
Route::get('/stats/question/csv', [StatsController::class, 'exportByQuestionCsv'])
->name('stats.viewByQuestionExportCSV');
});