You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB
JavaScript

'use strict';
const api = require('../../api');
const helpers = require('../helpers');
const messaging = require('../../messaging');
const events = require('../../events');
const Admin = module.exports;
Admin.updateSetting = async (req, res) => {
await api.admin.updateSetting(req, {
setting: req.params.setting,
value: req.body.value,
});
helpers.formatApiResponse(200, res);
};
Admin.getAnalyticsKeys = async (req, res) => {
helpers.formatApiResponse(200, res, {
keys: await api.admin.getAnalyticsKeys(),
});
};
Admin.getAnalyticsData = async (req, res) => {
helpers.formatApiResponse(200, res, await api.admin.getAnalyticsData(req, {
set: req.params.set,
until: parseInt(req.query.until, 10) || Date.now(),
amount: req.query.amount,
units: req.query.units,
}));
};
Admin.chats = {};
Admin.chats.deleteRoom = async (req, res) => {
const roomData = await messaging.getRoomData(req.params.roomId);
if (!roomData) {
throw new Error('[[error:no-room]]');
}
await messaging.deleteRooms([req.params.roomId]);
events.log({
type: 'chat-room-deleted',
roomId: req.params.roomId,
roomName: roomData.roomName ? roomData.roomName : `No room name`,
uid: req.uid,
ip: req.ip,
});
helpers.formatApiResponse(200, res);
};
Admin.generateToken = async (req, res) => {
const { uid, description } = req.body;
const token = await api.utils.tokens.generate({ uid, description });
helpers.formatApiResponse(200, res, await api.utils.tokens.get(token));
};
Admin.getToken = async (req, res) => {
helpers.formatApiResponse(200, res, await api.utils.tokens.get(req.params.token));
};
Admin.updateToken = async (req, res) => {
const { uid, description } = req.body;
const { token } = req.params;
helpers.formatApiResponse(200, res, await api.utils.tokens.update(token, { uid, description }));
};
Admin.rollToken = async (req, res) => {
let { token } = req.params;
token = await api.utils.tokens.roll(token);
helpers.formatApiResponse(200, res, await api.utils.tokens.get(token));
};
Admin.deleteToken = async (req, res) => {
const { token } = req.params;
helpers.formatApiResponse(200, res, await api.utils.tokens.delete(token));
};