API route for returning tracked analytics keys (#10019)

* feat: track metrics saved by NodeBB (and assoc. plugins), #9949

* feat: route to retrieve analytics keys, closes #9949
This commit is contained in:
Julian Lam
2021-11-19 15:12:13 -05:00
committed by GitHub
parent 449366ca83
commit 5b42b6b369
5 changed files with 51 additions and 8 deletions

View File

@@ -1,6 +1,5 @@
'use strict';
const user = require('../../user');
const meta = require('../../meta');
const privileges = require('../../privileges');
const analytics = require('../../analytics');
@@ -20,13 +19,16 @@ Admin.updateSetting = async (req, res) => {
helpers.formatApiResponse(200, res);
};
Admin.getAnalytics = async (req, res) => {
const ok = await user.isAdministrator(req.uid);
Admin.getAnalyticsKeys = async (req, res) => {
let keys = await analytics.getKeys();
if (!ok) {
return helpers.formatApiResponse(403, res);
}
// Sort keys alphabetically
keys = keys.sort((a, b) => (a < b ? -1 : 1));
helpers.formatApiResponse(200, res, { keys });
};
Admin.getAnalyticsData = async (req, res) => {
// Default returns views from past 24 hours, by hour
if (!req.query.amount) {
if (req.query.units === 'days') {