wip
This commit is contained in:
		
							parent
							
								
									0926d5b6da
								
							
						
					
					
						commit
						583b64331b
					
				
					 6 changed files with 31 additions and 67 deletions
				
			
		| 
						 | 
				
			
			@ -3,9 +3,9 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import * as mongo from 'mongodb';
 | 
			
		||||
import Favorite from '../../models/favorite';
 | 
			
		||||
import Post from '../../models/post';
 | 
			
		||||
import it from '../../../it';
 | 
			
		||||
import Favorite from '../../../models/favorite';
 | 
			
		||||
import Post from '../../../models/post';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Favorite a post
 | 
			
		||||
| 
						 | 
				
			
			@ -17,10 +17,8 @@ import Post from '../../models/post';
 | 
			
		|||
module.exports = (params, user) =>
 | 
			
		||||
	new Promise(async (res, rej) => {
 | 
			
		||||
		// Get 'post_id' parameter
 | 
			
		||||
		let postId = params.post_id;
 | 
			
		||||
		if (postId === undefined || postId === null) {
 | 
			
		||||
			return rej('post_id is required');
 | 
			
		||||
		}
 | 
			
		||||
		const [postId, postIdErr] = it(params.post_id, 'id', true);
 | 
			
		||||
		if (postIdErr) return rej('invalid post_id param');
 | 
			
		||||
 | 
			
		||||
		// Get favoritee
 | 
			
		||||
		const post = await Post.findOne({
 | 
			
		||||
| 
						 | 
				
			
			@ -3,9 +3,9 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import * as mongo from 'mongodb';
 | 
			
		||||
import Favorite from '../../models/favorite';
 | 
			
		||||
import Post from '../../models/post';
 | 
			
		||||
import it from '../../../it';
 | 
			
		||||
import Favorite from '../../../models/favorite';
 | 
			
		||||
import Post from '../../../models/post';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unfavorite a post
 | 
			
		||||
| 
						 | 
				
			
			@ -17,10 +17,8 @@ import Post from '../../models/post';
 | 
			
		|||
module.exports = (params, user) =>
 | 
			
		||||
	new Promise(async (res, rej) => {
 | 
			
		||||
		// Get 'post_id' parameter
 | 
			
		||||
		let postId = params.post_id;
 | 
			
		||||
		if (postId === undefined || postId === null) {
 | 
			
		||||
			return rej('post_id is required');
 | 
			
		||||
		}
 | 
			
		||||
		const [postId, postIdErr] = it(params.post_id, 'id', true);
 | 
			
		||||
		if (postIdErr) return rej('invalid post_id param');
 | 
			
		||||
 | 
			
		||||
		// Get favoritee
 | 
			
		||||
		const post = await Post.findOne({
 | 
			
		||||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import * as mongo from 'mongodb';
 | 
			
		||||
import it from '../../../it';
 | 
			
		||||
import Like from '../../../models/like';
 | 
			
		||||
import Post from '../../../models/post';
 | 
			
		||||
import User from '../../../models/user';
 | 
			
		||||
| 
						 | 
				
			
			@ -19,19 +19,12 @@ import notify from '../../../common/notify';
 | 
			
		|||
module.exports = (params, user) =>
 | 
			
		||||
	new Promise(async (res, rej) => {
 | 
			
		||||
		// Get 'post_id' parameter
 | 
			
		||||
		let postId = params.post_id;
 | 
			
		||||
		if (postId === undefined || postId === null) {
 | 
			
		||||
			return rej('post_id is required');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Validate id
 | 
			
		||||
		if (!mongo.ObjectID.isValid(postId)) {
 | 
			
		||||
			return rej('incorrect post_id');
 | 
			
		||||
		}
 | 
			
		||||
		const [postId, postIdErr] = it(params.post_id, 'id', true);
 | 
			
		||||
		if (postIdErr) return rej('invalid post_id param');
 | 
			
		||||
 | 
			
		||||
		// Get likee
 | 
			
		||||
		const post = await Post.findOne({
 | 
			
		||||
			_id: new mongo.ObjectID(postId)
 | 
			
		||||
			_id: postId
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (post === null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import * as mongo from 'mongodb';
 | 
			
		||||
import it from '../../../it';
 | 
			
		||||
import Like from '../../../models/like';
 | 
			
		||||
import Post from '../../../models/post';
 | 
			
		||||
import User from '../../../models/user';
 | 
			
		||||
| 
						 | 
				
			
			@ -19,19 +19,12 @@ import User from '../../../models/user';
 | 
			
		|||
module.exports = (params, user) =>
 | 
			
		||||
	new Promise(async (res, rej) => {
 | 
			
		||||
		// Get 'post_id' parameter
 | 
			
		||||
		let postId = params.post_id;
 | 
			
		||||
		if (postId === undefined || postId === null) {
 | 
			
		||||
			return rej('post_id is required');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Validate id
 | 
			
		||||
		if (!mongo.ObjectID.isValid(postId)) {
 | 
			
		||||
			return rej('incorrect post_id');
 | 
			
		||||
		}
 | 
			
		||||
		const [postId, postIdErr] = it(params.post_id, 'id', true);
 | 
			
		||||
		if (postIdErr) return rej('invalid post_id param');
 | 
			
		||||
 | 
			
		||||
		// Get likee
 | 
			
		||||
		const post = await Post.findOne({
 | 
			
		||||
			_id: new mongo.ObjectID(postId)
 | 
			
		||||
			_id: postId
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (post === null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import * as mongo from 'mongodb';
 | 
			
		||||
import it from '../../../it';
 | 
			
		||||
import Vote from '../../../models/poll-vote';
 | 
			
		||||
import Post from '../../../models/post';
 | 
			
		||||
import notify from '../../../common/notify';
 | 
			
		||||
| 
						 | 
				
			
			@ -18,19 +18,12 @@ import notify from '../../../common/notify';
 | 
			
		|||
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');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Validate id
 | 
			
		||||
		if (!mongo.ObjectID.isValid(postId)) {
 | 
			
		||||
			return rej('incorrect post_id');
 | 
			
		||||
		}
 | 
			
		||||
		const [postId, postIdErr] = it(params.post_id, 'id', true);
 | 
			
		||||
		if (postIdErr) return rej('invalid post_id param');
 | 
			
		||||
 | 
			
		||||
		// Get votee
 | 
			
		||||
		const post = await Post.findOne({
 | 
			
		||||
			_id: new mongo.ObjectID(postId)
 | 
			
		||||
			_id: postId
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (post === null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -42,15 +35,12 @@ module.exports = (params, user) =>
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		// Get 'choice' parameter
 | 
			
		||||
		const choice = params.choice;
 | 
			
		||||
		if (choice == null) {
 | 
			
		||||
			return rej('choice is required');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Validate choice
 | 
			
		||||
		if (!post.poll.choices.some(x => x.id == choice)) {
 | 
			
		||||
			return rej('invalid choice');
 | 
			
		||||
		}
 | 
			
		||||
		const [choice, choiceError] =
 | 
			
		||||
			it(params.choice).expect.string()
 | 
			
		||||
				.required()
 | 
			
		||||
				.validate(c => post.poll.choices.some(x => x.id == c))
 | 
			
		||||
				.qed();
 | 
			
		||||
		if (choiceError) return rej('invalid choice param');
 | 
			
		||||
 | 
			
		||||
		// if already voted
 | 
			
		||||
		const exist = await Vote.findOne({
 | 
			
		||||
| 
						 | 
				
			
			@ -76,8 +66,6 @@ module.exports = (params, user) =>
 | 
			
		|||
		const inc = {};
 | 
			
		||||
		inc[`poll.choices.${findWithAttr(post.poll.choices, 'id', choice)}.votes`] = 1;
 | 
			
		||||
 | 
			
		||||
		console.log(inc);
 | 
			
		||||
 | 
			
		||||
		// Increment likes count
 | 
			
		||||
		Post.update({ _id: post._id }, {
 | 
			
		||||
			$inc: inc
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Module dependencies
 | 
			
		||||
 */
 | 
			
		||||
import it from '../../it';
 | 
			
		||||
import User from '../../models/user';
 | 
			
		||||
import { validateUsername } from '../../models/user';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -16,15 +17,8 @@ module.exports = async (params) =>
 | 
			
		|||
	new Promise(async (res, rej) =>
 | 
			
		||||
{
 | 
			
		||||
	// Get 'username' parameter
 | 
			
		||||
	const username = params.username;
 | 
			
		||||
	if (username == null || username == '') {
 | 
			
		||||
		return rej('username-is-required');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Validate username
 | 
			
		||||
	if (!validateUsername(username)) {
 | 
			
		||||
		return rej('invalid-username');
 | 
			
		||||
	}
 | 
			
		||||
	const [username, usernameError] = it(params.username).expect.string().required().trim().validate(validateUsername).qed();
 | 
			
		||||
	if (usernameError) return rej('invalid username param');
 | 
			
		||||
 | 
			
		||||
	// Get exist
 | 
			
		||||
	const exist = await User
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue