| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/client-portal-laravel/backup/routes/ |
Upload File : |
<?php
use App\Http\Controllers\Admin\ImpersonationController;
use App\Http\Controllers\NotificationController;
use App\Http\Controllers\NotificationHubController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\SavedFilterController;
use App\Http\Controllers\SavedSearchController;
use App\Http\Controllers\SearchController;
use Illuminate\Support\Facades\Route;
// Profile routes
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
// Timezone detection route (works for both guests and authenticated users)
Route::post('/timezone/detect', [ProfileController::class, 'detectTimezone'])->name('timezone.detect');
// Impersonation stop route (outside admin middleware so impersonating users can access)
Route::middleware('auth')->post('/impersonation/stop', [ImpersonationController::class, 'stop'])
->name('impersonation.stop');
// Notification routes
Route::middleware('auth')->group(function () {
Route::get('/notifications', [NotificationController::class, 'index'])->name('notifications.index');
Route::get('/notifications/recent', [NotificationController::class, 'recent'])->name('notifications.recent');
Route::get('/notifications/unread-count', [NotificationController::class, 'unreadCount'])->name('notifications.unread-count');
Route::get('/notifications/{id}/read', [NotificationController::class, 'markAsRead'])->name('notifications.read');
Route::post('/notifications/{id}/read', [NotificationController::class, 'markAsRead']);
Route::post('/notifications/mark-all-read', [NotificationController::class, 'markAllAsRead'])->name('notifications.mark-all-read');
Route::delete('/notifications/clear-all', [NotificationController::class, 'clearAll'])->name('notifications.clear-all');
Route::delete('/notifications/{id}', [NotificationController::class, 'destroy'])->name('notifications.destroy');
});
// Notification Hub routes (preferences, quiet hours, channel config)
Route::middleware('auth')->prefix('settings/notifications')->name('settings.notifications.')->group(function () {
Route::get('/', [NotificationHubController::class, 'index'])->name('index');
Route::put('/preferences', [NotificationHubController::class, 'updatePreferences'])->name('preferences');
Route::put('/quiet-hours', [NotificationHubController::class, 'updateQuietHours'])->name('quiet-hours');
Route::post('/channels/{channel}/setup', [NotificationHubController::class, 'setupChannel'])->name('channel.setup');
Route::post('/channels/{channel}/verify', [NotificationHubController::class, 'verifyChannel'])->name('channel.verify');
Route::delete('/channels/{channel}', [NotificationHubController::class, 'removeChannel'])->name('channel.remove');
Route::post('/resubscribe', [NotificationHubController::class, 'resubscribe'])->name('resubscribe');
});
// Search routes
Route::middleware('auth')->prefix('search')->name('search.')->group(function () {
Route::get('/', [SearchController::class, 'index'])->name('index');
Route::get('/results', [SearchController::class, 'search'])->name('results');
Route::get('/quick', [SearchController::class, 'quickSearch'])->name('quick');
Route::get('/federated', [SearchController::class, 'federated'])->name('federated');
Route::get('/suggestions', [SearchController::class, 'suggestions'])->name('suggestions');
Route::get('/trending', [SearchController::class, 'trending'])->name('trending');
Route::post('/record-click', [SearchController::class, 'recordClick'])->name('record-click');
// Saved searches
Route::get('/saved', [SavedSearchController::class, 'index'])->name('saved.index');
Route::post('/saved', [SavedSearchController::class, 'store'])->name('saved.store');
Route::put('/saved/{savedSearch}', [SavedSearchController::class, 'update'])->name('saved.update');
Route::delete('/saved/{savedSearch}', [SavedSearchController::class, 'destroy'])->name('saved.destroy');
Route::post('/saved/{savedSearch}/default', [SavedSearchController::class, 'setDefault'])->name('saved.set-default');
Route::post('/saved/{savedSearch}/toggle-alert', [SavedSearchController::class, 'toggleAlert'])->name('saved.toggle-alert');
Route::get('/saved/{savedSearch}/execute', [SavedSearchController::class, 'execute'])->name('saved.execute');
});
// Saved filter routes
Route::middleware('auth')->group(function () {
Route::get('/filters', [SavedFilterController::class, 'index'])->name('filters.index');
Route::post('/filters', [SavedFilterController::class, 'store'])->name('filters.store');
Route::put('/filters/{filter}', [SavedFilterController::class, 'update'])->name('filters.update');
Route::delete('/filters/{filter}', [SavedFilterController::class, 'destroy'])->name('filters.destroy');
Route::patch('/filters/{filter}/default', [SavedFilterController::class, 'setDefault'])->name('filters.default');
});