66 lines
3.9 KiB
Markdown
66 lines
3.9 KiB
Markdown
# API Phase 3 Move Log
|
|
|
|
Date: 2026-03-16
|
|
Scope: Move `variable-categories` endpoints out of `api/src/server.ts` into a dedicated route module.
|
|
|
|
## Route Registration Changes
|
|
- Added variable-categories route import in [server.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/server.ts:18)
|
|
- Registered variable-categories routes in [server.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/server.ts:934)
|
|
- New canonical route module: [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:125)
|
|
- Removed inline variable-categories route block from `server.ts` to avoid duplicate endpoint registration.
|
|
|
|
## Endpoint Movements
|
|
|
|
1. `POST /variable-categories`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:129)
|
|
- References:
|
|
- [categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/categories.ts:12)
|
|
- [variable-categories.guard.test.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/tests/variable-categories.guard.test.ts:38)
|
|
|
|
2. `PATCH /variable-categories/:id`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:165)
|
|
- References:
|
|
- [categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/categories.ts:13)
|
|
- [variable-categories.guard.test.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/tests/variable-categories.guard.test.ts:49)
|
|
|
|
3. `DELETE /variable-categories/:id`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:202)
|
|
- References:
|
|
- [categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/categories.ts:14)
|
|
- [CategoriesSettings.tsx](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/pages/settings/CategoriesSettings.tsx:360)
|
|
|
|
4. `POST /variable-categories/rebalance`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:219)
|
|
- References:
|
|
- [categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/categories.ts:15)
|
|
- [CategoriesSettings.tsx](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/pages/settings/CategoriesSettings.tsx:367)
|
|
|
|
5. `GET /variable-categories/manual-rebalance`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:266)
|
|
- References:
|
|
- [rebalance.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/rebalance.ts:24)
|
|
- [variable-categories.manual-rebalance.test.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/tests/variable-categories.manual-rebalance.test.ts:54)
|
|
|
|
6. `POST /variable-categories/manual-rebalance`
|
|
- Moved to [variable-categories.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/src/routes/variable-categories.ts:283)
|
|
- References:
|
|
- [rebalance.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/api/rebalance.ts:25)
|
|
- [RebalancePage.tsx](/mnt/c/Users/jholt/clone-test/SkyMoney/web/src/pages/settings/RebalancePage.tsx:148)
|
|
- [variable-categories.manual-rebalance.test.ts](/mnt/c/Users/jholt/clone-test/SkyMoney/api/tests/variable-categories.manual-rebalance.test.ts:63)
|
|
|
|
## Helper Ownership in Phase 3
|
|
- Kept variable-category-specific helpers local to the route module:
|
|
- `assertPercentTotal`
|
|
- `getLatestBudgetSession`
|
|
- `ensureBudgetSession`
|
|
- `ensureBudgetSessionAvailableSynced`
|
|
- Reused shared server helper by injection:
|
|
- `computeDepositShares` injected from `server.ts` registration.
|
|
- Reused shared mutation throttling by injection:
|
|
- `mutationRateLimit` injected from `server.ts` registration.
|
|
|
|
## Follow-ups To Revisit
|
|
1. Consolidate budget-session sync helpers into a shared service (`api/src/services/budget-session.ts`) once Phase 4 starts.
|
|
2. Standardize response error envelopes for variable-category routes (`message` vs `ok/code/message`) to reduce client branching.
|
|
3. Recheck `variable-categories.manual-rebalance.test.ts` over-80 error-code expectation versus current confirm-style behavior to keep tests aligned with product policy.
|