1 import * as express from 'express'
2 import { parallel } from 'async'
7 getRequestVideoQaduScheduler,
8 getRequestVideoEventScheduler
10 import { authenticate, ensureIsAdmin } from '../../middlewares'
12 const requestsRouter = express.Router()
14 requestsRouter.get('/stats',
20 // ---------------------------------------------------------------------------
26 // ---------------------------------------------------------------------------
28 function getStatsRequests (req: express.Request, res: express.Response, next: express.NextFunction) {
30 requestScheduler: buildRequestSchedulerFunction(getRequestScheduler()),
31 requestVideoQaduScheduler: buildRequestSchedulerFunction(getRequestVideoQaduScheduler()),
32 requestVideoEventScheduler: buildRequestSchedulerFunction(getRequestVideoEventScheduler())
33 }, function (err, result) {
34 if (err) return next(err)
36 return res.json(result)
40 // ---------------------------------------------------------------------------
42 function buildRequestSchedulerFunction (requestScheduler: BaseRequestScheduler) {
43 return function (callback) {
44 requestScheduler.remainingRequestsCount(function (err, count) {
45 if (err) return callback(err)
49 requestsLimitPods: requestScheduler.limitPods,
50 requestsLimitPerPod: requestScheduler.limitPerPod,
51 remainingMilliSeconds: requestScheduler.remainingMilliSeconds(),
52 milliSecondsInterval: requestScheduler.requestInterval
55 return callback(null, result)