feat(api): #9123, migrate /api/post/pid/:pid to Write API

This commit is contained in:
Julian Lam
2020-12-28 19:38:00 -05:00
parent 1002c14aa2
commit e267f29584
5 changed files with 37 additions and 27 deletions

View File

@@ -5,13 +5,13 @@ const nconf = require('nconf');
const meta = require('../meta');
const user = require('../user');
const posts = require('../posts');
const topics = require('../topics');
const categories = require('../categories');
const privileges = require('../privileges');
const plugins = require('../plugins');
const translator = require('../translator');
const languages = require('../languages');
const api = require('../api');
const apiController = module.exports;
@@ -117,29 +117,8 @@ apiController.getConfig = async function (req, res) {
res.json(config);
};
apiController.getPostData = async function (pid, uid) {
const [userPrivileges, post, voted] = await Promise.all([
privileges.posts.get([pid], uid),
posts.getPostData(pid),
posts.hasVoted(pid, uid),
]);
if (!post) {
return null;
}
Object.assign(post, voted);
const userPrivilege = userPrivileges[0];
if (!userPrivilege.read || !userPrivilege['topics:read']) {
return null;
}
post.ip = userPrivilege.isAdminOrMod ? post.ip : undefined;
const selfPost = uid && uid === parseInt(post.uid, 10);
if (post.deleted && !(userPrivilege.isAdminOrMod || selfPost)) {
post.content = '[[topic:post_is_deleted]]';
}
return post;
};
// TODO: Deprecate these four controllers in 1.17.0
apiController.getPostData = async (pid, uid) => api.posts.get({ uid }, { pid });
apiController.getTopicData = async function (tid, uid) {
const [userPrivileges, topic] = await Promise.all([