Files

28 lines
1.1 KiB
TypeScript

import { setShotQueuePause, summarizeQueue, getShotQueue } from '~/server/utils/shotQueue'
import { toggleStudioQueuePause } from '~/server/utils/studioQueue'
export default defineEventHandler(async (event) => {
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
const body = await readBody<{ resume?: boolean }>(event).catch(() => ({} as { resume?: boolean }))
const queue = getShotQueue(owner, id)
if (!queue) throw createError({ statusCode: 404, statusMessage: 'Queue not found' })
const result = await toggleStudioQueuePause(owner, {
resume: body?.resume,
queueId: id
})
const next = getShotQueue(owner, id)
if (!next) throw createError({ statusCode: 404, statusMessage: 'Queue not found' })
if (result.willPause && !next.stopAfterCurrent) {
await setShotQueuePause(owner, id, true)
}
if (!result.willPause && next.stopAfterCurrent) {
await setShotQueuePause(owner, id, false)
}
return {
...summarizeQueue(getShotQueue(owner, id) || next),
paused: result.paused,
willPause: result.willPause
}
})