Spaces:
Runtime error
Runtime error
File size: 1,004 Bytes
1de388a 10c4538 e3b7b69 1de388a 30ac2fc 1de388a e3b7b69 30ac2fc e3b7b69 30ac2fc e3b7b69 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import type { Request, RequestHandler } from 'express'
import type { AuthenticatedRequest } from '@llm-router/auth-client'
import { container } from '../loader.js'
function tenantOf(req: Request): string {
return (req as AuthenticatedRequest).auth!.tenantId
}
function monthOf(req: Request): string | undefined {
const raw = req.query['month']
return typeof raw === 'string' && /^\d{4}-(0[1-9]|1[0-2])$/.test(raw) ? raw : undefined
}
export const getSummary: RequestHandler = async (req, res, next) => {
try {
res.json(await container.analyticsRepo.getSummary(tenantOf(req), monthOf(req)))
} catch (err: unknown) {
next(err)
}
}
export const getTrends: RequestHandler = async (req, res, next) => {
try {
const raw = Number(req.query['months'] ?? 6)
const months = Number.isFinite(raw) && raw > 0 ? Math.min(Math.floor(raw), 24) : 6
res.json(await container.analyticsRepo.getTrends(tenantOf(req), months, monthOf(req)))
} catch (err: unknown) {
next(err)
}
}
|