fix: #9395, pass all data from client to Topics.reply (#9396)

* fix: #9395, pass all data from client to Topics.reply

so plugins can set custom fields
refactor and use setDefaultPostData

* fix: circular json error

* refactor: change params
This commit is contained in:
Barış Soner Uşaklı
2021-03-15 15:34:05 -04:00
committed by GitHub
parent 33fbfdfe40
commit a8f7b24452
5 changed files with 15 additions and 23 deletions

View File

@@ -10,6 +10,13 @@ const socketHelpers = require('../socket.io/helpers');
const websockets = require('../socket.io');
const events = require('../events');
exports.setDefaultPostData = function (reqOrSocket, data) {
data.uid = reqOrSocket.uid;
data.req = exports.buildReqObject(reqOrSocket, { ...data });
data.timestamp = Date.now();
data.fromQueue = false;
};
// creates a slimmed down version of the request object
exports.buildReqObject = (req, payload) => {
req = req || {};

View File

@@ -34,10 +34,7 @@ topicsAPI.create = async function (caller, data) {
const payload = { ...data };
payload.tags = payload.tags || [];
payload.uid = caller.uid;
payload.req = apiHelpers.buildReqObject(caller);
payload.timestamp = Date.now();
payload.fromQueue = false;
apiHelpers.setDefaultPostData(caller, payload);
// Blacklist & Post Queue
await meta.blacklist.test(caller.ip);
@@ -58,19 +55,8 @@ topicsAPI.create = async function (caller, data) {
};
topicsAPI.reply = async function (caller, data) {
const payload = {
tid: data.tid,
uid: caller.uid,
req: apiHelpers.buildReqObject(caller), // For IP recording
content: data.content,
timestamp: Date.now(),
fromQueue: false,
};
if (data.toPid) { payload.toPid = data.toPid; }
if (data.handle && !parseInt(caller.uid, 10)) {
payload.handle = data.handle;
}
const payload = { ...data };
apiHelpers.setDefaultPostData(caller, payload);
// Blacklist & Post Queue
await meta.blacklist.test(caller.ip);