From d3cd34be2fd03ea79145dfa8eb16e82d2e23191b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 19 Sep 2016 21:33:46 +0200 Subject: Server: add requests stats endpoint --- server/controllers/api/v1/index.js | 2 ++ server/controllers/api/v1/requests.js | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 server/controllers/api/v1/requests.js (limited to 'server/controllers/api') 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() const clientsController = require('./clients') const podsController = require('./pods') const remoteController = require('./remote') +const requestsController = require('./requests') const usersController = require('./users') const videosController = require('./videos') router.use('/clients', clientsController) router.use('/pods', podsController) router.use('/remote', remoteController) +router.use('/requests', requestsController) router.use('/users', usersController) router.use('/videos', videosController) 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 @@ +'use strict' + +const express = require('express') +const mongoose = require('mongoose') + +const constants = require('../../../initializers/constants') +const middlewares = require('../../../middlewares') +const admin = middlewares.admin +const oAuth = middlewares.oauth + +const Request = mongoose.model('Request') + +const router = express.Router() + +router.get('/stats', + oAuth.authenticate, + admin.ensureIsAdmin, + getStatsRequests +) + +// --------------------------------------------------------------------------- + +module.exports = router + +// --------------------------------------------------------------------------- + +function getStatsRequests (req, res, next) { + Request.list(function (err, requests) { + if (err) return next(err) + + const remainingMilliSeconds = constants.REQUESTS_INTERVAL - (Date.now() % constants.REQUESTS_INTERVAL) + + return res.json({ + requests: requests, + remainingMilliSeconds: remainingMilliSeconds + }) + }) +} -- cgit v1.2.3