import express from "express"; import { prisma } from "@streamclipper/db"; import { env } from "./env"; import { lastPollErrors } from "./youtubePolling"; export function startServer() { const app = express(); app.get("/health", (_req, res) => res.json({ ok: true })); app.get("/status", async (_req, res) => { const channels = await prisma.channel.findMany({ include: { sessions: { where: { endedAt: null }, orderBy: { startedAt: "desc" }, take: 1, }, }, }); res.json({ channels: channels.map((c) => ({ id: c.id, name: c.name, isActive: c.isActive, lastCheckedAt: c.lastCheckedAt, recording: c.sessions.length > 0, activeSessionId: c.sessions[0]?.id ?? null, lastPollError: lastPollErrors.get(c.channelId) ?? null, })), }); }); app.listen(env.port, () => { console.log(`[server] api-daemon listening on :${env.port}`); }); }