Added some admin endpoints & ssl, and cleaned up config
This commit is contained in:
48
routes/admin.route.js
Normal file
48
routes/admin.route.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const utils = require('../utils/utils');
|
||||
const express = require('express');
|
||||
const adminRoutes = express.Router();
|
||||
|
||||
let Post = require('../schema/post.model');
|
||||
let Category = require('../schema/category.model');
|
||||
let Session = require('../schema/session.model');
|
||||
let User = require('../schema/user.model');
|
||||
|
||||
/*
|
||||
POST - /admin/stats
|
||||
Get system status
|
||||
Response: 201 - Created
|
||||
401 - Unauthorized
|
||||
*/
|
||||
adminRoutes.route('/stats').post((req, res) => {
|
||||
if (!req.body) {
|
||||
res.status(401).send("Missing body");
|
||||
return;
|
||||
}
|
||||
utils.account.checkSession(req.body.userId, req.body.sessionId, (isValidId) => {
|
||||
utils.account.isAdmin(req.body.userId, (isAdmin) => {
|
||||
if (isValidId && isAdmin) {
|
||||
let stats = {};
|
||||
Post.count({}, (err, postCount) => {
|
||||
stats.postCount = postCount;
|
||||
Category.count({}, (err, categoryCount) => {
|
||||
stats.categoryCount = categoryCount;
|
||||
Session.count({}, (err, sessionCount) => {
|
||||
stats.sessionCount = sessionCount;
|
||||
User.count({}, (err, userCount) => {
|
||||
stats.userCount = userCount;
|
||||
stats.date = Date();
|
||||
res.json(stats);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
res.status(401).send("Invalid permissions to view stats.");
|
||||
return;
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
module.exports = adminRoutes;
|
||||
Reference in New Issue
Block a user