This commit is contained in:
syuilo 2017-03-03 08:00:10 +09:00
parent 0926d5b6da
commit 583b64331b
6 changed files with 31 additions and 67 deletions

View file

@ -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({

View file

@ -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({

View file

@ -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) {

View file

@ -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) {

View file

@ -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

View file

@ -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