X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fjobs.ts;h=c19596dde2c5518c2048616c38721afab19e1d4b;hb=b014b6b9c7cb68d09c52b44046afe486c0736426;hp=132d110ad6b72bdb5c4e03d44364959ad526b639;hpb=94a5ff8a4a75d75bb9df542a39ce8769e7a7e6a4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/jobs.ts b/server/controllers/api/jobs.ts index 132d110ad..c19596dde 100644 --- a/server/controllers/api/jobs.ts +++ b/server/controllers/api/jobs.ts @@ -13,6 +13,7 @@ import { } from '../../middlewares' import { paginationValidator } from '../../middlewares/validators' import { listJobsValidator } from '../../middlewares/validators/jobs' +import { isArray } from '../../helpers/custom-validators/misc' const jobsRouter = express.Router() @@ -36,26 +37,30 @@ export { // --------------------------------------------------------------------------- async function listJobs (req: express.Request, res: express.Response, next: express.NextFunction) { - const sort = req.query.sort === 'createdAt' ? 'asc' : 'desc' + const state: JobState = req.params.state + const asc = req.query.sort === 'createdAt' - const jobs = await JobQueue.Instance.listForApi(req.params.state, req.query.start, req.query.count, sort) - const total = await JobQueue.Instance.count(req.params.state) + const jobs = await JobQueue.Instance.listForApi(state, req.query.start, req.query.count, asc) + const total = await JobQueue.Instance.count(state) const result: ResultList = { total, - data: jobs.map(j => formatJob(j.toJSON())) + data: jobs.map(j => formatJob(j, state)) } return res.json(result) } -function formatJob (job: any): Job { +function formatJob (job: any, state: JobState): Job { + const error = isArray(job.stacktrace) && job.stacktrace.length !== 0 ? job.stacktrace[0] : null + return { id: job.id, - state: job.state as JobState, - type: job.type as JobType, + state: state, + type: job.queue.name as JobType, data: job.data, - error: job.error, - createdAt: new Date(parseInt(job.created_at, 10)), - updatedAt: new Date(parseInt(job.updated_at, 10)) + error, + createdAt: new Date(job.timestamp), + finishedOn: new Date(job.finishedOn), + processedOn: new Date(job.processedOn) } }