Files
finance_app/routes/api.php
henry yo 85972f950c feat: 前端分離+功能api化
1. 新增資產管理CRUD、googleOAuth登入
2. 更改原記帳controller
2026-06-25 14:19:07 +08:00

68 lines
3.0 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\AccountController;
use App\Http\Controllers\Api\CategoryController;
use App\Http\Controllers\Api\CategoryRuleController;
use App\Http\Controllers\Api\ExpenseController;
use App\Http\Controllers\Api\InvestmentHoldingController;
use App\Http\Controllers\Api\InvestmentTransactionController;
use App\Http\Controllers\Api\InvoiceImportController;
use App\Http\Controllers\Api\SecurityController;
use App\Http\Controllers\Api\SecurityPriceController;
use App\Http\Controllers\Api\DashboardController;
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:sanctum');
Route::middleware('auth:sanctum')->group(function () {
// 儀表板統計數據 API
Route::get('/dashboard/stats', [DashboardController::class, 'index']);
Route::apiResource('accounts', AccountController::class);
Route::apiResource('accounts.holdings', InvestmentHoldingController::class)
->shallow();
Route::delete('holdings/delete/{account}/{holding}', [InvestmentHoldingController::class, 'destroy']);
Route::get('holdings/{holding}/transactions', [InvestmentTransactionController::class, 'index']);
Route::post('holdings/{holding}/transactions', [InvestmentTransactionController::class, 'store']);
Route::delete('holdings/{holding}/transactions/{transaction}', [InvestmentTransactionController::class, 'destroy']);
Route::get('/accounts/{accountId}/holdings-trend', [SecurityPriceController::class, 'accountTrend']);
Route::get('holdings/{holding}/realtime', [SecurityPriceController::class, 'showRealtime']);
Route::get('holdings/{holding}/history', [SecurityPriceController::class, 'history']);
Route::get('/securities/search', [SecurityController::class, 'index']);
// 取得所有支出明細列表
Route::get('/expenses', [ExpenseController::class, 'index']);
// 新增單筆支出
Route::post('/expenses', [ExpenseController::class, 'store']);
// 修改單筆支出
Route::put('/expenses/{expense}', [ExpenseController::class, 'update']);
// 刪除單筆支出
Route::delete('/expenses/{expense}', [ExpenseController::class, 'destroy']);
// 批量刪除支出
Route::post('/expenses/destroy-batch', [ExpenseController::class, 'destroyBatch']);
Route::get('/categories', [ExpenseController::class, 'categories']);
Route::get('/category-rules', [ExpenseController::class, 'categoryRules']);
// 分類管理 API
Route::post('/categories', [CategoryController::class, 'store']);
Route::put('/categories/{category}', [CategoryController::class, 'update']);
Route::delete('/categories/{category}', [CategoryController::class, 'destroy']);
// 自動分類規則 API
Route::post('/category-rules', [CategoryRuleController::class, 'store']);
Route::delete('/category-rules/{categoryRule}', [CategoryRuleController::class, 'destroy']);
// 發票 CSV 上傳匯入介面 API
Route::post('/expenses/import', [InvoiceImportController::class, 'store']);
});