fix: pass ramseyMode explicitly to getDebtBills to avoid stale DB reads
This commit is contained in:
parent
4b86898bc7
commit
e41f413f61
|
|
@ -73,14 +73,16 @@ function getDebtQuery(ramseyMode) {
|
|||
`;
|
||||
}
|
||||
|
||||
function getDebtBills(userId) {
|
||||
function getDebtBills(userId, ramseyMode) {
|
||||
const db = getDb();
|
||||
return db.prepare(getDebtQuery(isRamseyMode(userId))).all(userId);
|
||||
const mode = ramseyMode !== undefined ? ramseyMode : isRamseyMode(userId);
|
||||
return db.prepare(getDebtQuery(mode)).all(userId);
|
||||
}
|
||||
|
||||
// GET /api/snowball — server-filtered debt bills, pre-sorted by snowball_order
|
||||
router.get('/', (req, res) => {
|
||||
res.json(getDebtBills(req.user.id));
|
||||
const ramseyMode = isRamseyMode(req.user.id);
|
||||
res.json(getDebtBills(req.user.id, ramseyMode));
|
||||
});
|
||||
|
||||
// GET /api/snowball/settings — extra monthly payment for this user
|
||||
|
|
@ -134,7 +136,8 @@ router.patch('/settings', (req, res) => {
|
|||
const user = db.prepare('SELECT snowball_extra_payment FROM users WHERE id = ?').get(req.user.id);
|
||||
res.json({
|
||||
extra_payment: user?.snowball_extra_payment ?? 0,
|
||||
ramsey_mode: isRamseyMode(req.user.id),
|
||||
// Use body value when ramsey_mode was just saved; fall back to DB read if not in request
|
||||
ramsey_mode: ramsey_mode !== undefined ? !!ramsey_mode : isRamseyMode(req.user.id),
|
||||
ready_current_on_bills: getUserBoolSetting(req.user.id, 'snowball_ready_current_on_bills'),
|
||||
ready_emergency_fund: getUserBoolSetting(req.user.id, 'snowball_ready_emergency_fund'),
|
||||
});
|
||||
|
|
@ -145,7 +148,8 @@ router.patch('/settings', (req, res) => {
|
|||
router.get('/projection', (req, res) => {
|
||||
const db = getDb();
|
||||
|
||||
const bills = getDebtBills(req.user.id);
|
||||
const ramseyMode = isRamseyMode(req.user.id);
|
||||
const bills = getDebtBills(req.user.id, ramseyMode);
|
||||
const user = db.prepare('SELECT snowball_extra_payment FROM users WHERE id = ?').get(req.user.id);
|
||||
const extra = user?.snowball_extra_payment ?? 0;
|
||||
|
||||
|
|
@ -260,7 +264,8 @@ router.post('/plans', (req, res) => {
|
|||
const planName = (typeof name === 'string' && name.trim()) ? name.trim().slice(0, 100) : 'Snowball Plan';
|
||||
const planMethod = ['snowball', 'avalanche', 'custom'].includes(method) ? method : 'snowball';
|
||||
|
||||
const debts = getDebtBills(userId);
|
||||
const ramseyMode = isRamseyMode(userId);
|
||||
const debts = getDebtBills(userId, ramseyMode);
|
||||
const activeDebts = debts.filter(b => (b.current_balance ?? 0) > 0);
|
||||
if (activeDebts.length === 0) {
|
||||
return res.status(400).json({ error: 'No debts with a balance found. Add a balance to at least one bill.' });
|
||||
|
|
|
|||
Loading…
Reference in New Issue