← back to AbramsOS
routes/purchases.js
37 lines
const express = require('express');
const db = require('../lib/db');
const router = express.Router();
const DEV_USER_ID = 'user_steve';
router.get('/purchases', async (_req, res) => {
const result = await db.query(
`SELECT id, merchant_name, merchant_domain, order_number, purchase_date, total_amount, currency, confidence
FROM purchase WHERE user_id = $1 ORDER BY purchase_date DESC LIMIT 500`,
[DEV_USER_ID]
);
res.render('purchases', { purchases: result.rows });
});
router.get('/api/purchases', async (_req, res) => {
const result = await db.query(
`SELECT id, merchant_name, merchant_domain, order_number, purchase_date, total_amount, currency, confidence
FROM purchase WHERE user_id = $1 ORDER BY purchase_date DESC LIMIT 500`,
[DEV_USER_ID]
);
res.json(result.rows);
});
router.get('/api/purchases/:id', async (req, res) => {
const result = await db.query(
`SELECT p.*, sm.subject, sm.sender, sm.received_at AS message_received_at
FROM purchase p LEFT JOIN source_message sm ON sm.id = p.source_message_id
WHERE p.id = $1 AND p.user_id = $2`,
[req.params.id, DEV_USER_ID]
);
if (!result.rows.length) return res.status(404).json({ error: 'not found' });
res.json(result.rows[0]);
});
module.exports = router;