admin-revenue.ts20 lines · main
| 1 | import { Hono } from 'hono'; |
| 2 | |
| 3 | import { requireAdmin } from '../middleware/admin.js'; |
| 4 | import { requireAuth } from '../middleware/session.js'; |
| 5 | import type { AppEnv } from '../types/app-env.js'; |
| 6 | import { getAdminRevenue } from '../services/admin-revenue.js'; |
| 7 | |
| 8 | /** |
| 9 | * DEEP admin revenue endpoint. Read-only, so it takes the reads-no-step-up |
| 10 | * guard chain (requireAuth + requireAdmin) — same as the other admin GETs. |
| 11 | * Payload is a CONTRACT with the web revenue page (see services/admin-revenue.ts |
| 12 | * AdminRevenue). Real subscriptions + usage_events; MRR null until Mavi Pay is |
| 13 | * wired. |
| 14 | */ |
| 15 | export const adminRevenueRouter = new Hono<AppEnv>(); |
| 16 | |
| 17 | adminRevenueRouter.use('/v1/admin/revenue', requireAuth()); |
| 18 | adminRevenueRouter.use('/v1/admin/revenue', requireAdmin()); |
| 19 | |
| 20 | adminRevenueRouter.get('/v1/admin/revenue', async (c) => c.json(await getAdminRevenue())); |