]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/requests.js
Server: add licence video attribute
[github/Chocobozzz/PeerTube.git] / server / controllers / api / requests.js
index 1f9193fc87fd56ea2b23ac7010d77539ce436bd8..6fd5753ac5c69e1ff87952e62d9a6559f2c57d33 100644 (file)
@@ -1,9 +1,9 @@
 'use strict'
 
 const express = require('express')
+const parallel = require('async/parallel')
 
-const constants = require('../../initializers/constants')
-const db = require('../../initializers/database')
+const friends = require('../../lib/friends')
 const middlewares = require('../../middlewares')
 const admin = middlewares.admin
 const oAuth = middlewares.oauth
@@ -23,14 +23,33 @@ module.exports = router
 // ---------------------------------------------------------------------------
 
 function getStatsRequests (req, res, next) {
-  db.Request.countTotalRequests(function (err, totalRequests) {
+  parallel({
+    requestScheduler: buildRequestSchedulerFunction(friends.getRequestScheduler()),
+    requestVideoQaduScheduler: buildRequestSchedulerFunction(friends.getRequestVideoQaduScheduler()),
+    requestVideoEventScheduler: buildRequestSchedulerFunction(friends.getRequestVideoEventScheduler())
+  }, function (err, result) {
     if (err) return next(err)
 
-    return res.json({
-      totalRequests: totalRequests,
-      maxRequestsInParallel: constants.REQUESTS_IN_PARALLEL,
-      remainingMilliSeconds: db.Request.remainingMilliSeconds(),
-      milliSecondsInterval: constants.REQUESTS_INTERVAL
-    })
+    return res.json(result)
   })
 }
+
+// ---------------------------------------------------------------------------
+
+function buildRequestSchedulerFunction (requestScheduler) {
+  return function (callback) {
+    requestScheduler.remainingRequestsCount(function (err, count) {
+      if (err) return callback(err)
+
+      const result = {
+        totalRequests: count,
+        requestsLimitPods: requestScheduler.limitPods,
+        requestsLimitPerPod: requestScheduler.limitPerPod,
+        remainingMilliSeconds: requestScheduler.remainingMilliSeconds(),
+        milliSecondsInterval: requestScheduler.requestInterval
+      }
+
+      return callback(null, result)
+    })
+  }
+}