← 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;