whisper-money/routes/web.php

83 lines
4.2 KiB
PHP

<?php
use App\Http\Controllers\AccountBalanceController;
use App\Http\Controllers\EncryptionController;
use App\Http\Controllers\RobotsController;
use App\Http\Controllers\SitemapController;
use App\Http\Controllers\Sync\AccountBalanceSyncController;
use App\Http\Controllers\Sync\AccountSyncController;
use App\Http\Controllers\Sync\BankSyncController;
use App\Http\Controllers\Sync\CategorySyncController;
use App\Http\Controllers\TransactionController;
use App\Http\Controllers\UserLeadController;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use Laravel\Fortify\Features;
Route::get('/', function () {
return Inertia::render('welcome', [
'canRegister' => Features::enabled(Features::registration()),
'hideAuthButtons' => config('landing.hide_auth_buttons', false),
]);
})->name('home');
Route::get('sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');
Route::get('robots.txt', [RobotsController::class, 'index'])->name('robots');
Route::post('user-leads', [UserLeadController::class, 'store'])->name('user-leads.store');
Route::get('privacy', function () {
return Inertia::render('privacy');
})->name('privacy');
Route::get('terms', function () {
return Inertia::render('terms');
})->name('terms');
if (config('landing.hide_auth_buttons')) {
Route::match(['GET', 'POST'], 'login', fn () => abort(404));
Route::match(['GET', 'POST'], 'register', fn () => abort(404));
Route::post('logout', fn () => abort(404));
Route::get('forgot-password', fn () => abort(404));
Route::post('forgot-password', fn () => abort(404));
Route::get('reset-password/{token}', fn () => abort(404));
Route::post('reset-password', fn () => abort(404));
}
Route::middleware(['auth'])->group(function () {
Route::get('setup-encryption', function () {
return Inertia::render('auth/setup-encryption');
})->name('setup-encryption');
Route::post('api/encryption/setup', [EncryptionController::class, 'setup']);
Route::get('api/encryption/message', [EncryptionController::class, 'getMessage']);
Route::put('api/encryption/message', [EncryptionController::class, 'updateMessage']);
Route::get('api/sync/categories', [CategorySyncController::class, 'index']);
Route::get('api/sync/accounts', [AccountSyncController::class, 'index']);
Route::get('api/sync/banks', [BankSyncController::class, 'index']);
Route::get('api/sync/automation-rules', [\App\Http\Controllers\Sync\AutomationRuleSyncController::class, 'index']);
Route::get('api/sync/transactions', [\App\Http\Controllers\Sync\TransactionSyncController::class, 'index']);
Route::post('api/sync/transactions', [\App\Http\Controllers\Sync\TransactionSyncController::class, 'store']);
Route::patch('api/sync/transactions/{transaction}', [\App\Http\Controllers\Sync\TransactionSyncController::class, 'update']);
Route::delete('api/sync/transactions/{transaction}', [\App\Http\Controllers\Sync\TransactionSyncController::class, 'destroy']);
Route::get('api/sync/account-balances', [AccountBalanceSyncController::class, 'index']);
Route::post('api/sync/account-balances', [AccountBalanceSyncController::class, 'store']);
Route::patch('api/sync/account-balances/{accountBalance}', [AccountBalanceSyncController::class, 'update']);
Route::put('api/accounts/{account}/balance/current', [AccountBalanceController::class, 'updateCurrent'])->name('accounts.balance.update-current');
});
Route::middleware(['auth', 'verified', 'redirect.encryption'])->group(function () {
Route::get('dashboard', function () {
return Inertia::render('dashboard');
})->name('dashboard');
Route::get('transactions', [TransactionController::class, 'index'])->name('transactions.index');
Route::post('transactions', [TransactionController::class, 'store'])->name('transactions.store');
Route::patch('transactions/bulk', [TransactionController::class, 'bulkUpdate'])->name('transactions.bulk-update');
Route::patch('transactions/{transaction}', [TransactionController::class, 'update'])->name('transactions.update');
Route::delete('transactions/{transaction}', [TransactionController::class, 'destroy'])->name('transactions.destroy');
});
require __DIR__.'/settings.php';