Skip to content
Snippets Groups Projects
Commit 7bf27dc4 authored by Aya Morisawa's avatar Aya Morisawa
Browse files

Clean up

parent 3148be77
No related branches found
No related tags found
No related merge requests found
......@@ -15,40 +15,39 @@ import Post from '../../models/post';
* @return {Promise<object>}
*/
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');
}
// Get favoritee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
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');
}
// Get favoritee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
if (post === null) {
return rej('post not found');
}
// Check already favorited
const exist = await Favorite.findOne({
post_id: post._id,
user_id: user._id
});
if (exist !== null) {
return rej('already favorited');
}
// Create favorite
await Favorite.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id
});
// Send response
res();
});
if (post === null) {
return rej('post not found');
}
// Check arleady favorited
const exist = await Favorite.findOne({
post_id: post._id,
user_id: user._id
});
if (exist !== null) {
return rej('already favorited');
}
// Create favorite
await Favorite.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id
});
// Send response
res();
});
......@@ -15,38 +15,37 @@ import Post from '../../models/post';
* @return {Promise<object>}
*/
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');
}
// Get favoritee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
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');
}
// Get favoritee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
if (post === null) {
return rej('post not found');
}
// Check arleady favorited
const exist = await Favorite.findOne({
post_id: post._id,
user_id: user._id
});
if (exist === null) {
return rej('already not favorited');
}
// Delete favorite
await Favorite.deleteOne({
_id: exist._id
});
// Send response
res();
});
if (post === null) {
return rej('post not found');
}
// Check arleady favorited
const exist = await Favorite.findOne({
post_id: post._id,
user_id: user._id
});
if (exist === null) {
return rej('already not favorited');
}
// Delete favorite
await Favorite.deleteOne({
_id: exist._id
});
// Send response
res();
});
......@@ -17,77 +17,76 @@ import notify from '../../../common/notify';
* @return {Promise<object>}
*/
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');
}
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');
}
// Validate id
if (!mongo.ObjectID.isValid(postId)) {
return rej('incorrect post_id');
}
// Get likee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
// Get likee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
if (post === null) {
return rej('post not found');
}
if (post === null) {
return rej('post not found');
}
// Myself
if (post.user_id.equals(user._id)) {
return rej('-need-translate-');
}
// Myself
if (post.user_id.equals(user._id)) {
return rej('-need-translate-');
}
// Check arleady liked
const exist = await Like.findOne({
post_id: post._id,
user_id: user._id,
deleted_at: { $exists: false }
});
// Check arleady liked
const exist = await Like.findOne({
post_id: post._id,
user_id: user._id,
deleted_at: { $exists: false }
});
if (exist !== null) {
return rej('already liked');
}
if (exist !== null) {
return rej('already liked');
}
// Create like
await Like.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id
});
// Create like
await Like.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id
});
// Send response
res();
// Send response
res();
// Increment likes count
Post.update({ _id: post._id }, {
$inc: {
likes_count: 1
}
});
// Increment likes count
Post.update({ _id: post._id }, {
$inc: {
likes_count: 1
}
});
// Increment user likes count
User.update({ _id: user._id }, {
$inc: {
likes_count: 1
}
});
// Increment user likes count
User.update({ _id: user._id }, {
$inc: {
likes_count: 1
}
});
// Increment user liked count
User.update({ _id: post.user_id }, {
$inc: {
liked_count: 1
}
});
// Increment user liked count
User.update({ _id: post.user_id }, {
$inc: {
liked_count: 1
}
});
// Notify
notify(post.user_id, user._id, 'like', {
post_id: post._id
// Notify
notify(post.user_id, user._id, 'like', {
post_id: post._id
});
});
});
......@@ -17,69 +17,68 @@ import User from '../../../models/user';
* @return {Promise<object>}
*/
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');
}
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');
}
// Get likee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
// Validate id
if (!mongo.ObjectID.isValid(postId)) {
return rej('incorrect post_id');
}
if (post === null) {
return rej('post not found');
}
// Get likee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
// Check arleady liked
const exist = await Like.findOne({
post_id: post._id,
user_id: user._id,
deleted_at: { $exists: false }
});
if (post === null) {
return rej('post not found');
}
if (exist === null) {
return rej('already not liked');
}
// Check arleady liked
const exist = await Like.findOne({
post_id: post._id,
user_id: user._id,
deleted_at: { $exists: false }
});
// Delete like
await Like.update({
_id: exist._id
}, {
$set: {
deleted_at: new Date()
if (exist === null) {
return rej('already not liked');
}
});
// Send response
res();
// Delete like
await Like.update({
_id: exist._id
}, {
$set: {
deleted_at: new Date()
}
});
// Decrement likes count
Post.update({ _id: post._id }, {
$inc: {
likes_count: -1
}
});
// Send response
res();
// Decrement user likes count
User.update({ _id: user._id }, {
$inc: {
likes_count: -1
}
});
// Decrement likes count
Post.update({ _id: post._id }, {
$inc: {
likes_count: -1
}
});
// Decrement user liked count
User.update({ _id: post.user_id }, {
$inc: {
liked_count: -1
}
// Decrement user likes count
User.update({ _id: user._id }, {
$inc: {
likes_count: -1
}
});
// Decrement user liked count
User.update({ _id: post.user_id }, {
$inc: {
liked_count: -1
}
});
});
});
......@@ -16,84 +16,83 @@ import notify from '../../../common/notify';
* @return {Promise<object>}
*/
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');
}
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');
}
// Validate id
if (!mongo.ObjectID.isValid(postId)) {
return rej('incorrect post_id');
}
// Get votee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
// Get votee
const post = await Post.findOne({
_id: new mongo.ObjectID(postId)
});
if (post === null) {
return rej('post not found');
}
if (post === null) {
return rej('post not found');
}
if (post.poll == null) {
return rej('poll not found');
}
if (post.poll == null) {
return rej('poll not found');
}
// Get 'choice' parameter
const choice = params.choice;
if (choice == null) {
return rej('choice is required');
}
// 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');
}
// Validate choice
if (!post.poll.choices.some(x => x.id == choice)) {
return rej('invalid choice');
}
// Check arleady voted
const exist = await Vote.findOne({
post_id: post._id,
user_id: user._id
});
// Check arleady voted
const exist = await Vote.findOne({
post_id: post._id,
user_id: user._id
});
if (exist !== null) {
return rej('already voted');
}
if (exist !== null) {
return rej('already voted');
}
// Create vote
await Vote.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id,
choice: choice
});
// Create vote
await Vote.insert({
created_at: new Date(),
post_id: post._id,
user_id: user._id,
choice: choice
});
// Send response
res();
// Send response
res();
const inc = {};
inc[`poll.choices.${ findWithAttr(post.poll.choices, 'id', choice) }.votes`] = 1;
const inc = {};
inc[`poll.choices.${findWithAttr(post.poll.choices, 'id', choice)}.votes`] = 1;
console.log(inc);
console.log(inc);
// Increment likes count
Post.update({ _id: post._id }, {
$inc: inc
});
// Increment likes count
Post.update({ _id: post._id }, {
$inc: inc
});
// Notify
notify(post.user_id, user._id, 'poll_vote', {
post_id: post._id,
choice: choice
// Notify
notify(post.user_id, user._id, 'poll_vote', {
post_id: post._id,
choice: choice
});
});
});
function findWithAttr(array, attr, value) {
for (let i = 0; i < array.length; i += 1) {
if(array[i][attr] === value) {
if (array[i][attr] === value) {
return i;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment