From f3d5c07ada08a089969176cdb7b7bfc3f0132fda Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 2 Mar 2017 17:08:09 +0900 Subject: wip --- src/api/endpoints/posts/context.js | 83 -------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 src/api/endpoints/posts/context.js (limited to 'src/api/endpoints/posts/context.js') diff --git a/src/api/endpoints/posts/context.js b/src/api/endpoints/posts/context.js deleted file mode 100644 index b843044642..0000000000 --- a/src/api/endpoints/posts/context.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict'; - -/** - * Module dependencies - */ -import * as mongo from 'mongodb'; -import Post from '../../models/post'; -import serialize from '../../serializers/post'; - -/** - * Show a context of a post - * - * @param {any} params - * @param {any} user - * @return {Promise} - */ -module.exports = (params, user) => - new Promise(async (res, rej) => -{ - // Get 'post_id' parameter - const postId = params.post_id; - if (postId === undefined || postId === null) { - return rej('post_id is required'); - } - - // Get 'limit' parameter - let limit = params.limit; - if (limit !== undefined && limit !== null) { - limit = parseInt(limit, 10); - - // From 1 to 100 - if (!(1 <= limit && limit <= 100)) { - return rej('invalid limit range'); - } - } else { - limit = 10; - } - - // Get 'offset' parameter - let offset = params.offset; - if (offset !== undefined && offset !== null) { - offset = parseInt(offset, 10); - } else { - offset = 0; - } - - // Lookup post - const post = await Post.findOne({ - _id: new mongo.ObjectID(postId) - }); - - if (post === null) { - return rej('post not found', 'POST_NOT_FOUND'); - } - - const context = []; - let i = 0; - - async function get(id) { - i++; - const p = await Post.findOne({ _id: id }); - - if (i > offset) { - context.push(p); - } - - if (context.length == limit) { - return; - } - - if (p.reply_to_id) { - await get(p.reply_to_id); - } - } - - if (post.reply_to_id) { - await get(post.reply_to_id); - } - - // Serialize - res(await Promise.all(context.map(async post => - await serialize(post, user)))); -}); -- cgit v1.3.1-freya