]> 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 52aad69972cbcb4062788542d1509383d34263fc..6fd5753ac5c69e1ff87952e62d9a6559f2c57d33 100644 (file)
@@ -1,15 +1,13 @@
 'use strict'
 
 const express = require('express')
-const mongoose = require('mongoose')
+const parallel = require('async/parallel')
 
-const constants = require('../../initializers/constants')
+const friends = require('../../lib/friends')
 const middlewares = require('../../middlewares')
 const admin = middlewares.admin
 const oAuth = middlewares.oauth
 
-const Request = mongoose.model('Request')
-
 const router = express.Router()
 
 router.get('/stats',
@@ -25,14 +23,33 @@ module.exports = router
 // ---------------------------------------------------------------------------
 
 function getStatsRequests (req, res, next) {
-  Request.list(function (err, requests) {
+  parallel({
+    requestScheduler: buildRequestSchedulerFunction(friends.getRequestScheduler()),
+    requestVideoQaduScheduler: buildRequestSchedulerFunction(friends.getRequestVideoQaduScheduler()),
+    requestVideoEventScheduler: buildRequestSchedulerFunction(friends.getRequestVideoEventScheduler())
+  }, function (err, result) {
     if (err) return next(err)
 
-    return res.json({
-      requests: requests,
-      maxRequestsInParallel: constants.REQUESTS_IN_PARALLEL,
-      remainingMilliSeconds: 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)
+    })
+  }
+}