BillTracker/routes/tracker.cts

26 lines
997 B
TypeScript
Raw Normal View History

// Fully type-checked (tsconfig.server.json); leading import type keeps Node type-stripping active.
import type { Req, Res, Next } from '../types/http';
2026-05-03 19:51:57 -05:00
const express = require('express');
2026-05-16 15:38:28 -05:00
const router = express.Router();
const { getTracker, getUpcomingBills, getOverdueCount } = require('../services/trackerService.cts');
const { ApiError, ValidationError } = require('../utils/apiError.cts');
// GET /api/tracker/overdue-count — lightweight count for sidebar badge
router.get('/overdue-count', (req: Req, res: Res) => {
res.json(getOverdueCount(req.user.id));
});
2026-05-03 19:51:57 -05:00
// GET /api/tracker?year=2026&month=5
router.get('/', (req: Req, res: Res) => {
const result = getTracker(req.user.id, req.query);
if (result.error) throw new ApiError('VALIDATION_ERROR', result.error, result.status || 400);
res.json(result);
2026-05-03 19:51:57 -05:00
});
// GET /api/tracker/upcoming?days=30
router.get('/upcoming', (req: Req, res: Res) => {
res.json(getUpcomingBills(req.user.id, req.query));
2026-05-03 19:51:57 -05:00
});
module.exports = router;