2020-10-07 17:29:37 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
2021-02-22 16:37:17 -05:00
|
|
|
const user = require('../../user');
|
2020-10-07 17:29:37 -04:00
|
|
|
const meta = require('../../meta');
|
2020-10-29 07:56:28 -04:00
|
|
|
const privileges = require('../../privileges');
|
2021-02-22 16:37:17 -05:00
|
|
|
const analytics = require('../../analytics');
|
2020-10-07 17:29:37 -04:00
|
|
|
|
|
|
|
|
const helpers = require('../helpers');
|
|
|
|
|
|
|
|
|
|
const Admin = module.exports;
|
|
|
|
|
|
|
|
|
|
Admin.updateSetting = async (req, res) => {
|
2020-10-29 07:56:28 -04:00
|
|
|
const ok = await privileges.admin.can('admin:settings', req.uid);
|
|
|
|
|
|
|
|
|
|
if (!ok) {
|
2020-10-07 17:29:37 -04:00
|
|
|
return helpers.formatApiResponse(403, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await meta.configs.set(req.params.setting, req.body.value);
|
|
|
|
|
helpers.formatApiResponse(200, res);
|
|
|
|
|
};
|
2021-02-22 16:37:17 -05:00
|
|
|
|
|
|
|
|
Admin.getAnalytics = async (req, res) => {
|
|
|
|
|
const ok = await user.isAdministrator(req.uid);
|
|
|
|
|
|
|
|
|
|
if (!ok) {
|
|
|
|
|
return helpers.formatApiResponse(403, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Default returns views from past 24 hours, by hour
|
|
|
|
|
if (!req.query.amount) {
|
|
|
|
|
if (req.query.units === 'days') {
|
|
|
|
|
req.query.amount = 30;
|
|
|
|
|
} else {
|
|
|
|
|
req.query.amount = 24;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const getStats = req.query.units === 'days' ? analytics.getDailyStatsForSet : analytics.getHourlyStatsForSet;
|
|
|
|
|
helpers.formatApiResponse(200, res, await getStats(`analytics:${req.params.set}`, parseInt(req.query.until, 10) || Date.now(), req.query.amount));
|
|
|
|
|
};
|