inspiren-sem-tool/routes/web.php

128 lines
6.7 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\GoogleAdsController;
use App\Http\Controllers\GoogleController;
use App\Http\Controllers\ActivityController;
use App\Http\Controllers\ClientInvoiceController;
use App\Http\Controllers\ClientInvoiceAdjustmentController;
use App\Http\Controllers\Management\RoleController;
use App\Http\Controllers\Management\UserController;
use App\Services\ClickHouseService;
Route::get('/', function () {
return redirect()->route('login');
})->name('home');
Route::middleware('auth')->group(function () {
Route::get('dashboard', DashboardController::class)
->middleware('permission:dashboard.view')
->name('dashboard');
Route::prefix('google-ads')
->name('google-ads.')
->group(function () {
Route::prefix('accounts')
->name('accounts.')
->controller(GoogleAdsController::class)
->group(function () {
Route::get('/', 'accounts')
->middleware('permission:google-ads.accounts.view')
->name('index');
Route::post('/sync-google-company-details', 'syncGoogleCompanyDetails')
->middleware('permission:google-ads.accounts.sync')
->name('sync-google-company-details');
Route::get('/{id}/edit', 'edit')
->middleware('permission:google-ads.accounts.update')
->name('edit');
Route::get('/{id}', 'show')
->middleware('permission:google-ads.accounts.view')
->name('show');
Route::post('/{id}/account', 'updateAccount')
->middleware('permission:google-ads.accounts.update')
->name('account.update');
Route::prefix('activity')
->name('activity.')
->controller(ActivityController::class)
->group(function () {
Route::post('/{id}/store', 'storeActivity')
->middleware('permission:google-ads.activities.create')
->name('storeActivity');
Route::patch('/{id}/update', 'updateActivity')
->middleware('permission:google-ads.activities.update')
->name('updateActivity');
Route::patch('/{id}/complete', 'completeActivity')
->middleware('permission:google-ads.activities.complete')
->name('completeActivity');
Route::delete('/{id}/delete', 'deleteActivity')
->middleware('permission:google-ads.activities.delete')
->name('deleteActivity');
});
});
Route::get('import', [GoogleAdsController::class, 'insertCSVDataToDB'])
->middleware('permission:google-ads.import')
->name('import');
});
Route::prefix('client-invoices')
->name('client-invoices.')
->controller(ClientInvoiceController::class)
->group(function () {
Route::get('/create', 'create')->middleware('permission:client-invoices.create')->name('create');
Route::post('/', 'store')->middleware('permission:client-invoices.create')->name('store');
Route::get('{invoice}/client/create', 'createClient')->middleware('permission:client-invoices.create-client')->name('client.create');
Route::post('{invoice}/client', 'storeClient')->middleware('permission:client-invoices.create-client')->name('client.store');
Route::get('{invoice}/edit', 'edit')->middleware('permission:client-invoices.update')->name('edit');
Route::put('{invoice}', 'update')->middleware('permission:client-invoices.update')->name('update');
Route::patch('{invoice}/approve', 'approve')->middleware('permission:client-invoices.approve')->name('approve');
Route::delete('{invoice}', 'destroy')->middleware('permission:client-invoices.delete')->name('destroy');
Route::get('/pdf/invoice/{id}', 'getPdfInvoice')->middleware('permission:client-invoices.view-pdf')->name('getPdfInvoice');
});
Route::prefix('clients')
->name('clients.')
->controller(ClientInvoiceAdjustmentController::class)
->group(function () {
Route::post('{client}/adjustments', 'store')->middleware('permission:clients.adjustments.create')->name('adjustments.store');
Route::delete('adjustments/{adjustment}', 'destroy')->middleware('permission:clients.adjustments.delete')->name('adjustments.destroy');
});
Route::prefix('google')
->name('google.')
->controller(GoogleController::class)
->group(function () {
Route::post('/getCampaignsDetails', 'listCampaignsMetrics')
->middleware('permission:google.reports.view')
->name('getCampaignsDetails');
});
Route::prefix('management')
->name('management.')
->group(function () {
Route::prefix('roles')
->name('roles.')
->controller(RoleController::class)
->group(function () {
// Route::post('/getCampaignsDetails', 'listCampaignsMetrics')
// ->name('getCampaignsDetails');
Route::get('/', 'index')->middleware('permission:management.roles.view')->name('index');
Route::get('{id}/edit/', 'edit')->middleware('permission:management.roles.update')->name('edit');
Route::post('{id}/update/', 'update')->middleware('permission:management.roles.update')->name('update');
});
Route::prefix('users')
->name('users.')
->controller(UserController::class)
->group(function () {
Route::get('/', 'index')->middleware('permission:management.users.view')->name('index');
Route::get('/create', 'create')->middleware('permission:management.users.create')->name('create');
Route::post('/store', 'store')->middleware('permission:management.users.create')->name('store');
Route::get('{id}/edit', 'edit')->middleware('permission:management.users.update')->name('edit');
Route::post('{id}/update', 'update')->middleware('permission:management.users.update')->name('update');
});
});
});
require __DIR__.'/settings.php';