28 lines
1.1 KiB
TypeScript
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 }>().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
|
|
}
|
|
})
|