diff --git a/src/database/index.js b/src/database/index.js index 2366ae3671..b64a968970 100644 --- a/src/database/index.js +++ b/src/database/index.js @@ -11,11 +11,14 @@ if (!databaseName) { } const primaryDB = require(`./${databaseName}`); +const utils = require('../utils'); primaryDB.parseIntFields = function (data, intFields, requestedFields) { intFields.forEach((field) => { if (!requestedFields || !requestedFields.length || requestedFields.includes(field)) { - data[field] = parseInt(data[field], 10) || 0; + data[field] = utils.isNumber(data[field]) ? + parseInt(data[field], 10) || 0 : + data[field]; } }); }; diff --git a/src/posts/data.js b/src/posts/data.js index 8edd4096e6..7654e89e83 100644 --- a/src/posts/data.js +++ b/src/posts/data.js @@ -59,19 +59,8 @@ module.exports = function (Posts) { }; function modifyPost(post, fields) { - const _intFields = [...intFields]; - if (post) { - ['pid', 'uid', 'tid'].forEach((prop) => { - if ( - post.hasOwnProperty(prop) && - (activitypub.helpers.isUri(post[prop]) || validator.isUUID(String(post[prop]))) - ) { - _intFields.splice(_intFields.indexOf(prop), 1); - } - }); - - db.parseIntFields(post, _intFields, fields); + db.parseIntFields(post, intFields, fields); if (post.hasOwnProperty('upvotes') && post.hasOwnProperty('downvotes')) { post.votes = post.upvotes - post.downvotes; } diff --git a/src/topics/data.js b/src/topics/data.js index ae5b71b4b5..1260c092e1 100644 --- a/src/topics/data.js +++ b/src/topics/data.js @@ -95,13 +95,7 @@ function modifyTopic(topic, fields) { return; } - const _intFields = [...intFields]; - if (validator.isUUID(String(topic.tid))) { - _intFields.splice(_intFields.indexOf('uid'), 1); - _intFields.splice(_intFields.indexOf('tid'), 1); - _intFields.splice(_intFields.indexOf('mainPid'), 1); - } - db.parseIntFields(topic, _intFields, fields); + db.parseIntFields(topic, intFields, fields); if (topic.hasOwnProperty('title')) { topic.titleRaw = topic.title; diff --git a/src/topics/posts.js b/src/topics/posts.js index bf967291e1..a384bfe069 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -246,9 +246,12 @@ module.exports = function (Topics) { }; Topics.addPostToTopic = async function (tid, postData) { + console.log('now in addPostToTopic', tid, postData); const mainPid = await Topics.getTopicField(tid, 'mainPid'); + console.log(mainPid); if (!mainPid) { await Topics.setTopicField(tid, 'mainPid', postData.pid); + console.log('what'); } else { const upvotes = parseInt(postData.upvotes, 10) || 0; const downvotes = parseInt(postData.downvotes, 10) || 0; diff --git a/src/user/data.js b/src/user/data.js index 8356a3886f..86469b0f05 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -205,12 +205,7 @@ module.exports = function (User) { return; } - const _intFields = [...intFields]; - - if (activitypub.helpers.isUri(user.uid)) { - _intFields.splice(_intFields.indexOf('uid'), 1); - } - db.parseIntFields(user, _intFields, requestedFields); + db.parseIntFields(user, intFields, requestedFields); if (user.hasOwnProperty('username')) { parseDisplayName(user, uidToSettings);