2021-12-10 17:16:54 -05:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
const api = require('../../api');
|
2021-12-13 11:47:48 -05:00
|
|
|
const messaging = require('../../messaging');
|
2021-12-10 17:16:54 -05:00
|
|
|
|
|
|
|
|
const helpers = require('../helpers');
|
|
|
|
|
|
|
|
|
|
const Chats = module.exports;
|
|
|
|
|
|
|
|
|
|
Chats.list = async (req, res) => {
|
2021-12-13 11:47:48 -05:00
|
|
|
const page = (isFinite(req.query.page) && parseInt(req.query.page, 10)) || 1;
|
|
|
|
|
const perPage = (isFinite(req.query.perPage) && parseInt(req.query.perPage, 10)) || 20;
|
|
|
|
|
const start = Math.max(0, page - 1) * perPage;
|
|
|
|
|
const stop = start + perPage;
|
|
|
|
|
const { rooms } = await messaging.getRecentChats(req.uid, req.uid, start, stop);
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res, { rooms });
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.create = async (req, res) => {
|
2021-12-13 14:02:02 -05:00
|
|
|
const roomObj = await api.chats.create(req, req.body);
|
|
|
|
|
helpers.formatApiResponse(200, res, roomObj);
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.exists = async (req, res) => {
|
|
|
|
|
helpers.formatApiResponse(200, res);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.get = async (req, res) => {
|
2021-12-14 10:32:41 -05:00
|
|
|
const roomObj = await messaging.loadRoom(req.uid, {
|
|
|
|
|
uid: req.query.uid || req.uid,
|
|
|
|
|
roomId: req.params.roomId,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res, roomObj);
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.post = async (req, res) => {
|
2021-12-14 11:01:05 -05:00
|
|
|
const messageObj = await api.chats.post(req, {
|
|
|
|
|
...req.body,
|
|
|
|
|
roomId: req.params.roomId,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res, messageObj);
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|
|
|
|
|
|
2021-12-15 10:59:58 -05:00
|
|
|
Chats.rename = async (req, res) => {
|
|
|
|
|
const roomObj = await api.chats.rename(req, {
|
|
|
|
|
...req.body,
|
|
|
|
|
roomId: req.params.roomId,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res, roomObj);
|
|
|
|
|
};
|
|
|
|
|
|
2021-12-10 17:16:54 -05:00
|
|
|
Chats.users = async (req, res) => {
|
|
|
|
|
// ...
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.invite = async (req, res) => {
|
|
|
|
|
// ...
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.kick = async (req, res) => {
|
|
|
|
|
// ...
|
|
|
|
|
};
|
|
|
|
|
|
2021-12-13 11:47:48 -05:00
|
|
|
Chats.messages = {};
|
2021-12-20 12:02:05 -05:00
|
|
|
Chats.messages.get = async (req, res) => {
|
|
|
|
|
const messages = await messaging.getMessagesData([req.params.mid], req.uid, req.params.roomId, false);
|
|
|
|
|
helpers.formatApiResponse(200, res, messages.pop());
|
|
|
|
|
};
|
|
|
|
|
|
2021-12-10 17:16:54 -05:00
|
|
|
Chats.messages.edit = async (req, res) => {
|
2021-12-20 11:30:43 -05:00
|
|
|
await messaging.canEdit(req.params.mid, req.uid);
|
|
|
|
|
await messaging.editMessage(req.uid, req.params.mid, req.params.roomId, req.body.message);
|
|
|
|
|
|
|
|
|
|
const messages = await messaging.getMessagesData([req.params.mid], req.uid, req.params.roomId, false);
|
|
|
|
|
helpers.formatApiResponse(200, res, messages.pop());
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.messages.delete = async (req, res) => {
|
2021-12-20 15:00:43 -05:00
|
|
|
await messaging.canDelete(req.params.mid, req.uid);
|
|
|
|
|
await messaging.deleteMessage(req.params.mid, req.uid);
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Chats.messages.restore = async (req, res) => {
|
|
|
|
|
await messaging.canDelete(req.params.mid, req.uid);
|
|
|
|
|
await messaging.restoreMessage(req.params.mid, req.uid);
|
|
|
|
|
|
|
|
|
|
helpers.formatApiResponse(200, res);
|
2021-12-10 17:16:54 -05:00
|
|
|
};
|