6370e392cc
Partner reports — health cohorts, revenue-by-plan, top customers, signup/churn cohorts, plus saved custom reports (create/list/delete). Operator platform-wide reports (MRR, revenue by plan, top tenants, growth). Replaces the reports fixtures in both apps.
25 lines
932 B
TypeScript
25 lines
932 B
TypeScript
// Create a saved partner report. Forwards to platform-api
|
|
// POST /me/partner/reports/saved.
|
|
import { getUserSession } from 'nuxt-oidc-auth/runtime/server/utils/session.js'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const session = await getUserSession(event).catch(() => null)
|
|
const accessToken = (session as { accessToken?: string } | null)?.accessToken
|
|
if (!accessToken) {
|
|
throw createError({ statusCode: 401, statusMessage: 'Not signed in' })
|
|
}
|
|
|
|
const body = await readBody(event)
|
|
const base = process.env.PLATFORM_API_INTERNAL_URL ?? 'http://platform-api:3001'
|
|
try {
|
|
return await $fetch(`${base}/me/partner/reports/saved`, {
|
|
method: 'POST',
|
|
headers: { Authorization: `Bearer ${accessToken}` },
|
|
body,
|
|
})
|
|
} catch (err: unknown) {
|
|
const e = err as { statusCode?: number; data?: unknown }
|
|
throw createError({ statusCode: e.statusCode ?? 500, data: e.data })
|
|
}
|
|
})
|