diff options
Diffstat (limited to 'server/controllers/api')
-rw-r--r-- | server/controllers/api/v1/index.js | 2 | ||||
-rw-r--r-- | server/controllers/api/v1/requests.js | 38 |
2 files changed, 40 insertions, 0 deletions
diff --git a/server/controllers/api/v1/index.js b/server/controllers/api/v1/index.js index af41bc280..2e4fb2dab 100644 --- a/server/controllers/api/v1/index.js +++ b/server/controllers/api/v1/index.js | |||
@@ -7,12 +7,14 @@ const router = express.Router() | |||
7 | const clientsController = require('./clients') | 7 | const clientsController = require('./clients') |
8 | const podsController = require('./pods') | 8 | const podsController = require('./pods') |
9 | const remoteController = require('./remote') | 9 | const remoteController = require('./remote') |
10 | const requestsController = require('./requests') | ||
10 | const usersController = require('./users') | 11 | const usersController = require('./users') |
11 | const videosController = require('./videos') | 12 | const videosController = require('./videos') |
12 | 13 | ||
13 | router.use('/clients', clientsController) | 14 | router.use('/clients', clientsController) |
14 | router.use('/pods', podsController) | 15 | router.use('/pods', podsController) |
15 | router.use('/remote', remoteController) | 16 | router.use('/remote', remoteController) |
17 | router.use('/requests', requestsController) | ||
16 | router.use('/users', usersController) | 18 | router.use('/users', usersController) |
17 | router.use('/videos', videosController) | 19 | router.use('/videos', videosController) |
18 | router.use('/*', badRequest) | 20 | router.use('/*', badRequest) |
diff --git a/server/controllers/api/v1/requests.js b/server/controllers/api/v1/requests.js new file mode 100644 index 000000000..6018bb40c --- /dev/null +++ b/server/controllers/api/v1/requests.js | |||
@@ -0,0 +1,38 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | const express = require('express') | ||
4 | const mongoose = require('mongoose') | ||
5 | |||
6 | const constants = require('../../../initializers/constants') | ||
7 | const middlewares = require('../../../middlewares') | ||
8 | const admin = middlewares.admin | ||
9 | const oAuth = middlewares.oauth | ||
10 | |||
11 | const Request = mongoose.model('Request') | ||
12 | |||
13 | const router = express.Router() | ||
14 | |||
15 | router.get('/stats', | ||
16 | oAuth.authenticate, | ||
17 | admin.ensureIsAdmin, | ||
18 | getStatsRequests | ||
19 | ) | ||
20 | |||
21 | // --------------------------------------------------------------------------- | ||
22 | |||
23 | module.exports = router | ||
24 | |||
25 | // --------------------------------------------------------------------------- | ||
26 | |||
27 | function getStatsRequests (req, res, next) { | ||
28 | Request.list(function (err, requests) { | ||
29 | if (err) return next(err) | ||
30 | |||
31 | const remainingMilliSeconds = constants.REQUESTS_INTERVAL - (Date.now() % constants.REQUESTS_INTERVAL) | ||
32 | |||
33 | return res.json({ | ||
34 | requests: requests, | ||
35 | remainingMilliSeconds: remainingMilliSeconds | ||
36 | }) | ||
37 | }) | ||
38 | } | ||