32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
export default defineEventHandler(async event => {
|
|
event.context.query = getQuery(event)
|
|
|
|
// 获取任务列表的状态进度(普通用户只能看到自己的)
|
|
if (event.node.req.method === 'GET') {
|
|
let tasks = await useStorage().getItem(`task:${event.context.query.tid}`)
|
|
return { 'tasks': tasks }
|
|
}
|
|
|
|
// 保存任务列表的状态进度(只允许BOT写入)
|
|
if (event.node.req.method === 'PUT') {
|
|
await useStorage().setItem(`task:${event.context.query.tid}`, event.context.query.tid)
|
|
return { 'message': 'ok' }
|
|
}
|
|
|
|
// 添加任务到队列(生成一个32位随机字符串作为任务ID)
|
|
if (event.node.req.method === 'POST') {
|
|
event.context.body = await readBody(event) // 读取body数据到
|
|
event.context.body.tid = Math.random().toString(36).substring(2, 34)
|
|
await useStorage().setItem(`task:${event.context.query.tid}`, event.context.query)
|
|
// 如果无需排队,直接返回结果, 否则返回任务排队状态(预估等待时间)
|
|
return event.context.body
|
|
}
|
|
|
|
// 逐删除自己的指定任务(普通用户只能删除自己的)
|
|
if (event.node.req.method === 'DELETE') {
|
|
await useStorage().removeItem(`task:${event.context.query.tid}`)
|
|
return { 'message': 'ok' }
|
|
}
|
|
|
|
})
|