add delete task api

This commit is contained in:
Hongbo Wu 2024-05-09 12:43:37 +08:00
parent 2f00c4dbc6
commit 431dc420a9

View file

@ -41,7 +41,40 @@ export function taskRouter() {
res.send(result)
} catch (e) {
logger.error('failed to get task', e)
res.status(500)
res.sendStatus(500)
}
})
router.delete('/:id', cors<express.Request>(corsConfig), async (req, res) => {
const token = getTokenByRequest(req)
const claims = await getClaimsByToken(token)
if (!claims) {
return res.sendStatus(401)
}
try {
const job = await getJob(req.params.id)
if (!job || !job.id) {
return res.sendStatus(404)
}
const jobState = await job.getState()
if (jobState === 'active') {
// cannot delete active task
return res.status(400).send('Task is active')
}
// remove job
await job.remove()
if (['completed', 'failed'].includes(jobState)) {
return res.status(200).send('Task removed')
}
res.status(200).send('Task cancelled')
} catch (e) {
logger.error('failed to delete task', e)
res.sendStatus(500)
}
})