/** * GET /api/chat/unread * Seeds the client's per-peer unread badge counts on connect: * { counts: { [senderUserId]: count } } * Gated to staff. */ import { gateFromEvent } from '../../utils/chatAccess' import { getUnreadCounts } from '../../utils/chatDb' export default defineEventHandler(async (event) => { const config = useRuntimeConfig() if (config.chatEnabled !== true) { setResponseStatus(event, 404) return { error: 'chat disabled' } } let userId: number try { ({ userId } = await gateFromEvent(event)) } catch (err: any) { setResponseStatus(event, err?.statusCode || 403) return { error: 'forbidden' } } return { counts: getUnreadCounts(userId) } })