mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
add delete task api
This commit is contained in:
parent
2f00c4dbc6
commit
431dc420a9
1 changed files with 34 additions and 1 deletions
|
|
@ -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)
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue