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
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));
|
|
};
|