← back to AbramsOS
routes/home.js
34 lines
const express = require('express');
const db = require('../lib/db');
const router = express.Router();
const DEV_USER_ID = 'user_steve';
router.get('/', async (_req, res) => {
const [connectorCount, purchaseCount, lastSync, recent, savings] = await Promise.all([
db.query(`SELECT count(*)::int AS n FROM connector_account WHERE user_id = $1`, [DEV_USER_ID]),
db.query(`SELECT count(*)::int AS n FROM purchase WHERE user_id = $1`, [DEV_USER_ID]),
db.query(`SELECT max(last_sync_at) AS t FROM connector_account WHERE user_id = $1`, [DEV_USER_ID]),
db.query(
`SELECT id, merchant_name, total_amount, currency, purchase_date
FROM purchase WHERE user_id = $1 ORDER BY purchase_date DESC LIMIT 6`,
[DEV_USER_ID]
),
db.query(
`SELECT count(*)::int AS n, COALESCE(sum(est_savings),0) AS total
FROM savings_suggestion WHERE user_id = $1 AND status IN ('new','saved')`,
[DEV_USER_ID]
),
]);
res.render('home', {
connectorCount: connectorCount.rows[0].n,
purchaseCount: purchaseCount.rows[0].n,
lastSync: lastSync.rows[0].t,
recent: recent.rows,
savingsCount: savings.rows[0].n,
savingsTotal: Number(savings.rows[0].total) || 0,
});
});
module.exports = router;