This commit is contained in:
Kirill
2026-05-25 16:54:37 +05:00
parent 74fe39829d
commit af6b249248
15 changed files with 703 additions and 452 deletions
+454 -292
View File
File diff suppressed because it is too large Load Diff
@@ -25,10 +25,17 @@ export async function registerAdminTestChecklistRoutes(fastify) {
const result = await prisma.checklistResult.upsert({
where: { itemKey },
create: { itemKey, passed, comment: passed ? null : comment || null },
update: { passed, comment: passed ? null : comment ?? undefined, checkedAt: new Date() },
update: { passed, comment: passed ? null : (comment ?? undefined), checkedAt: new Date() },
})
return { result: { itemKey: result.itemKey, passed: result.passed, comment: result.comment, checkedAt: result.checkedAt.toISOString() } }
return {
result: {
itemKey: result.itemKey,
passed: result.passed,
comment: result.comment,
checkedAt: result.checkedAt.toISOString(),
},
}
})
fastify.post('/api/admin/test-checklist/reset', { preHandler: [fastify.verifyAdmin] }, async (request, reply) => {
+11 -9
View File
@@ -105,6 +105,15 @@ export async function registerSseRoutes(fastify) {
})
let closed = false
let heartbitTimer
let removeListeners
function cleanUp() {
if (closed) return
closed = true
clearInterval(heartbitTimer)
removeListeners()
}
function safeWrite(chunk) {
if (closed) return
@@ -121,18 +130,11 @@ export async function registerSseRoutes(fastify) {
safeWrite(formatHeartbit())
const heartbitTimer = setInterval(() => {
heartbitTimer = setInterval(() => {
safeWrite(formatHeartbit())
}, 30_000)
const removeListeners = buildSseListeners(userId, admin, fastify.eventBus, safeWrite)
function cleanUp() {
if (closed) return
closed = true
clearInterval(heartbitTimer)
removeListeners()
}
removeListeners = buildSseListeners(userId, admin, fastify.eventBus, safeWrite)
request.raw.on('close', cleanUp)
request.raw.on('error', cleanUp)