Fix bug
This commit is contained in:
		
							parent
							
								
									caa8aee7a0
								
							
						
					
					
						commit
						9f81288fcc
					
				
					 48 changed files with 91 additions and 140 deletions
				
			
		| 
						 | 
				
			
			@ -72,8 +72,7 @@ export default (
 | 
			
		|||
		.find({ user_id: user._id }, {
 | 
			
		||||
			datasize: true,
 | 
			
		||||
			_id: false
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Calculate drive usage (in byte)
 | 
			
		||||
	const usage = files.map(file => file.datasize).reduce((x, y) => x + y, 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,8 +11,7 @@ export default async (me: mongodb.ObjectID, includeMe: boolean = true) => {
 | 
			
		|||
			deleted_at: { $exists: false }
 | 
			
		||||
		}, {
 | 
			
		||||
			followee_id: true
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// ID list of other users who the I follows
 | 
			
		||||
	const myfollowingIds = myfollowing.map(follow => follow.followee_id);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,8 +48,7 @@ module.exports = (params) =>
 | 
			
		|||
				_id: '$date',
 | 
			
		||||
				count: { $sum: 1 }
 | 
			
		||||
			}}
 | 
			
		||||
		])
 | 
			
		||||
		.toArray();
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
	datas.forEach(data => {
 | 
			
		||||
		data.date = data._id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,8 +45,7 @@ module.exports = (params) =>
 | 
			
		|||
			post_id: false
 | 
			
		||||
		}, {
 | 
			
		||||
			sort: { created_at: -1 }
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,8 +47,7 @@ module.exports = (params) =>
 | 
			
		|||
				_id: '$date',
 | 
			
		||||
				count: { $sum: 1 }
 | 
			
		||||
			}}
 | 
			
		||||
		])
 | 
			
		||||
		.toArray();
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
	datas.forEach(data => {
 | 
			
		||||
		data.date = data._id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,8 +47,7 @@ module.exports = (params) =>
 | 
			
		|||
				_id: '$date',
 | 
			
		||||
				count: { $sum: 1 }
 | 
			
		||||
			}}
 | 
			
		||||
		])
 | 
			
		||||
		.toArray();
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
	datas.forEach(data => {
 | 
			
		||||
		data.date = data._id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,8 +46,7 @@ module.exports = (params) =>
 | 
			
		|||
			followee_id: false
 | 
			
		||||
		}, {
 | 
			
		||||
			sort: { created_at: -1 }
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,8 +46,7 @@ module.exports = (params) =>
 | 
			
		|||
			followee_id: false
 | 
			
		||||
		}, {
 | 
			
		||||
			sort: { created_at: -1 }
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	const graph = [];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,8 +48,7 @@ module.exports = (params) =>
 | 
			
		|||
				_id: '$date',
 | 
			
		||||
				count: { $sum: 1 }
 | 
			
		||||
			}}
 | 
			
		||||
		])
 | 
			
		||||
		.toArray();
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
	datas.forEach(data => {
 | 
			
		||||
		data.date = data._id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,8 +70,7 @@ module.exports = (params) =>
 | 
			
		|||
					count: '$count'
 | 
			
		||||
				}}
 | 
			
		||||
			} }
 | 
			
		||||
		])
 | 
			
		||||
		.toArray();
 | 
			
		||||
		]);
 | 
			
		||||
 | 
			
		||||
	datas.forEach(data => {
 | 
			
		||||
		data.date = data._id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,12 +87,8 @@ module.exports = (params, user) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// Update session
 | 
			
		||||
	await AuthSess.updateOne({
 | 
			
		||||
		_id: session._id
 | 
			
		||||
	}, {
 | 
			
		||||
		$set: {
 | 
			
		||||
			user_id: user._id
 | 
			
		||||
		}
 | 
			
		||||
	await AuthSess.update(session._id, {
 | 
			
		||||
		user_id: user._id
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Response
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,12 +16,11 @@ module.exports = (params, user) =>
 | 
			
		|||
	new Promise(async (res, rej) =>
 | 
			
		||||
{
 | 
			
		||||
	// Fetch all files to calculate drive usage
 | 
			
		||||
	const files = await DriveFile
 | 
			
		||||
		.find({ user_id: user._id }, {
 | 
			
		||||
			datasize: true,
 | 
			
		||||
			_id: false
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		const files = await DriveFile
 | 
			
		||||
			.find({ user_id: user._id }, {
 | 
			
		||||
				datasize: true,
 | 
			
		||||
				_id: false
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
	// Calculate drive usage (in byte)
 | 
			
		||||
	const usage = files.map(file => file.datasize).reduce((x, y) => x + y, 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,8 +73,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(files.map(async file =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,8 +39,7 @@ module.exports = (params, user) =>
 | 
			
		|||
			folder_id: folder
 | 
			
		||||
		}, {
 | 
			
		||||
			data: false
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(files.map(async file =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,9 +74,7 @@ module.exports = (params, user) =>
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	DriveFile.updateOne({ _id: file._id }, {
 | 
			
		||||
		$set: file
 | 
			
		||||
	});
 | 
			
		||||
	DriveFile.update(file._id, file);
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	const fileObj = await serialize(file);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,8 +73,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(folders.map(async folder =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,8 +37,7 @@ module.exports = (params, user) =>
 | 
			
		|||
			name: name,
 | 
			
		||||
			user_id: user._id,
 | 
			
		||||
			parent_id: parentId
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(folders.map(async folder =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,9 +99,7 @@ module.exports = (params, user) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// Update
 | 
			
		||||
	DriveFolder.updateOne({ _id: folder._id }, {
 | 
			
		||||
		$set: folder
 | 
			
		||||
	});
 | 
			
		||||
	DriveFolder.update(folder._id, folder);
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	const folderObj = await serialize(folder);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,8 +76,7 @@ module.exports = (params, user) =>
 | 
			
		|||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(files.map(async file =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,14 +64,14 @@ module.exports = (params, user) =>
 | 
			
		|||
	res();
 | 
			
		||||
 | 
			
		||||
	// Increment following count
 | 
			
		||||
	User.updateOne({ _id: follower._id }, {
 | 
			
		||||
	User.update(follower._id, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			following_count: 1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Increment followers count
 | 
			
		||||
	User.updateOne({ _id: followee._id }, {
 | 
			
		||||
	User.update({ _id: followee._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			followers_count: 1
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ module.exports = (params, user) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// Delete following
 | 
			
		||||
	await Following.updateOne({
 | 
			
		||||
	await Following.update({
 | 
			
		||||
		_id: exist._id
 | 
			
		||||
	}, {
 | 
			
		||||
		$set: {
 | 
			
		||||
| 
						 | 
				
			
			@ -65,14 +65,14 @@ module.exports = (params, user) =>
 | 
			
		|||
	res();
 | 
			
		||||
 | 
			
		||||
	// Decrement following count
 | 
			
		||||
	User.updateOne({ _id: follower._id }, {
 | 
			
		||||
	User.update({ _id: follower._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			following_count: -1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Decrement followers count
 | 
			
		||||
	User.updateOne({ _id: followee._id }, {
 | 
			
		||||
	User.update({ _id: followee._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			followers_count: -1
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ module.exports = (params, user, app, isSecure) =>
 | 
			
		|||
				data: Object.assign(user.data || {}, JSON.parse(data))
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
		await User.updateOne({ _id: user._id }, set);
 | 
			
		||||
		await User.update({ _id: user._id }, set);
 | 
			
		||||
		res(204);
 | 
			
		||||
	} else {
 | 
			
		||||
		const appdata = await Appdata.findOne({
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ module.exports = (params, user, app, isSecure) =>
 | 
			
		|||
				data: Object.assign((appdata || {}).data || {}, JSON.parse(data))
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
		await Appdata.updateOne({
 | 
			
		||||
		await Appdata.update({
 | 
			
		||||
			app_id: app._id,
 | 
			
		||||
			user_id: user._id
 | 
			
		||||
		}, Object.assign({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,14 +44,13 @@ module.exports = (params) =>
 | 
			
		|||
	const favorites = await Favorites
 | 
			
		||||
		.find({
 | 
			
		||||
			user_id: user._id
 | 
			
		||||
		}, {}, {
 | 
			
		||||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset,
 | 
			
		||||
			sort: {
 | 
			
		||||
				_id: sort == 'asc' ? 1 : -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(favorites.map(async favorite =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,11 +92,10 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const notifications = await Notification
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(notifications.map(async notification =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,11 +59,10 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const history = await Signin
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(history.map(async record =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ import User from '../../models/user';
 | 
			
		|||
import { isValidBirthday } from '../../models/user';
 | 
			
		||||
import serialize from '../../serializers/user';
 | 
			
		||||
import event from '../../event';
 | 
			
		||||
import config from '../../../conf';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Update myself
 | 
			
		||||
| 
						 | 
				
			
			@ -73,9 +74,7 @@ module.exports = async (params, user, _, isSecure) =>
 | 
			
		|||
		user.banner_id = new mongo.ObjectID(banner);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	await User.updateOne({ _id: user._id }, {
 | 
			
		||||
		$set: user
 | 
			
		||||
	});
 | 
			
		||||
	await User.update(user._id, user);
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	const iObj = await serialize(user, user, {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,13 +34,12 @@ module.exports = (params, user) =>
 | 
			
		|||
	const history = await History
 | 
			
		||||
		.find({
 | 
			
		||||
			user_id: user._id
 | 
			
		||||
		}, {}, {
 | 
			
		||||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: {
 | 
			
		||||
				updated_at: -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(history.map(async h =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,11 +90,10 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const messages = await Message
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(messages.map(async message =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ module.exports = (params, user) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// 履歴作成(自分)
 | 
			
		||||
	History.updateOne({
 | 
			
		||||
	History.update({
 | 
			
		||||
		user_id: user._id,
 | 
			
		||||
		partner: recipient._id
 | 
			
		||||
	}, {
 | 
			
		||||
| 
						 | 
				
			
			@ -138,7 +138,7 @@ module.exports = (params, user) =>
 | 
			
		|||
	});
 | 
			
		||||
 | 
			
		||||
	// 履歴作成(相手)
 | 
			
		||||
	History.updateOne({
 | 
			
		||||
	History.update({
 | 
			
		||||
		user_id: recipient._id,
 | 
			
		||||
		partner: user._id
 | 
			
		||||
	}, {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,14 +44,13 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Execute query
 | 
			
		||||
	const apps = await App
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset,
 | 
			
		||||
			sort: {
 | 
			
		||||
				created_at: -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Reply
 | 
			
		||||
	res(await Promise.all(apps.map(async app =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Update
 | 
			
		||||
	notification.is_read = true;
 | 
			
		||||
	Notification.updateOne({ _id: notification._id }, {
 | 
			
		||||
	Notification.update({ _id: notification._id }, {
 | 
			
		||||
		$set: {
 | 
			
		||||
			is_read: true
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,11 +54,10 @@ module.exports = (params) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const posts = await Post
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(posts.map(async post => await serialize(post))));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import serialize from '../../serializers/post';
 | 
			
		|||
import createFile from '../../common/add-file-to-drive';
 | 
			
		||||
import notify from '../../common/notify';
 | 
			
		||||
import event from '../../event';
 | 
			
		||||
import config from '../../../conf';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 最大文字数
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +104,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
		// Fetch recently post
 | 
			
		||||
		const latestPost = await Post.findOne({
 | 
			
		||||
			user_id: user._id
 | 
			
		||||
		}, {}, {
 | 
			
		||||
		}, {
 | 
			
		||||
			sort: {
 | 
			
		||||
				_id: -1
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -152,7 +153,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// 投稿を作成
 | 
			
		||||
	const inserted = await Post.insert({
 | 
			
		||||
	const post = await Post.insert({
 | 
			
		||||
		created_at: new Date(),
 | 
			
		||||
		media_ids: media ? files.map(file => file._id) : undefined,
 | 
			
		||||
		reply_to_id: replyTo ? replyTo._id : undefined,
 | 
			
		||||
| 
						 | 
				
			
			@ -162,8 +163,6 @@ module.exports = (params, user, app) =>
 | 
			
		|||
		app_id: app ? app._id : null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const post = inserted.ops[0];
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	const postObj = await serialize(post);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -200,15 +199,14 @@ module.exports = (params, user, app) =>
 | 
			
		|||
		}, {
 | 
			
		||||
			follower_id: true,
 | 
			
		||||
			_id: false
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Publish event to followers stream
 | 
			
		||||
	followers.forEach(following =>
 | 
			
		||||
		event(following.follower_id, 'post', postObj));
 | 
			
		||||
 | 
			
		||||
	// Increment my posts count
 | 
			
		||||
	User.updateOne({ _id: user._id }, {
 | 
			
		||||
	User.update({ _id: user._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			posts_count: 1
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -217,7 +215,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
	// If has in reply to post
 | 
			
		||||
	if (replyTo) {
 | 
			
		||||
		// Increment replies count
 | 
			
		||||
		Post.updateOne({ _id: replyTo._id }, {
 | 
			
		||||
		Post.update({ _id: replyTo._id }, {
 | 
			
		||||
			$inc: {
 | 
			
		||||
				replies_count: 1
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -262,7 +260,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
 | 
			
		||||
		if (!existRepost) {
 | 
			
		||||
			// Update repostee status
 | 
			
		||||
			Post.updateOne({ _id: repost._id }, {
 | 
			
		||||
			Post.update({ _id: repost._id }, {
 | 
			
		||||
				$inc: {
 | 
			
		||||
					repost_count: 1
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -336,7 +334,7 @@ module.exports = (params, user, app) =>
 | 
			
		|||
 | 
			
		||||
	// Append mentions data
 | 
			
		||||
	if (mentions.length > 0) {
 | 
			
		||||
		Post.updateOne({ _id: post._id }, {
 | 
			
		||||
		Post.update({ _id: post._id }, {
 | 
			
		||||
			$set: {
 | 
			
		||||
				mentions: mentions
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,14 +62,13 @@ module.exports = (params, user) =>
 | 
			
		|||
		.find({
 | 
			
		||||
			post_id: post._id,
 | 
			
		||||
			deleted_at: { $exists: false }
 | 
			
		||||
		}, {}, {
 | 
			
		||||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset,
 | 
			
		||||
			sort: {
 | 
			
		||||
				_id: sort == 'asc' ? 1 : -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(likes.map(async like =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,21 +66,21 @@ module.exports = (params, user) =>
 | 
			
		|||
	res();
 | 
			
		||||
 | 
			
		||||
	// Increment likes count
 | 
			
		||||
	Post.updateOne({ _id: post._id }, {
 | 
			
		||||
	Post.update({ _id: post._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			likes_count: 1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Increment user likes count
 | 
			
		||||
	User.updateOne({ _id: user._id }, {
 | 
			
		||||
	User.update({ _id: user._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			likes_count: 1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Increment user liked count
 | 
			
		||||
	User.updateOne({ _id: post.user_id }, {
 | 
			
		||||
	User.update({ _id: post.user_id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			liked_count: 1
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@ module.exports = (params, user) =>
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// Delete like
 | 
			
		||||
	await Like.updateOne({
 | 
			
		||||
	await Like.update({
 | 
			
		||||
		_id: exist._id
 | 
			
		||||
	}, {
 | 
			
		||||
		$set: {
 | 
			
		||||
| 
						 | 
				
			
			@ -58,21 +58,21 @@ module.exports = (params, user) =>
 | 
			
		|||
	res();
 | 
			
		||||
 | 
			
		||||
	// Decrement likes count
 | 
			
		||||
	Post.updateOne({ _id: post._id }, {
 | 
			
		||||
	Post.update({ _id: post._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			likes_count: -1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Decrement user likes count
 | 
			
		||||
	User.updateOne({ _id: user._id }, {
 | 
			
		||||
	User.update({ _id: user._id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			likes_count: -1
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	// Decrement user liked count
 | 
			
		||||
	User.updateOne({ _id: post.user_id }, {
 | 
			
		||||
	User.update({ _id: post.user_id }, {
 | 
			
		||||
		$inc: {
 | 
			
		||||
			liked_count: -1
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,11 +72,10 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const mentions = await Post
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(mentions.map(async mention =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,14 +58,13 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const replies = await Post
 | 
			
		||||
		.find({ reply_to_id: post._id }, {}, {
 | 
			
		||||
		.find({ reply_to_id: post._id }, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset,
 | 
			
		||||
			sort: {
 | 
			
		||||
				_id: sort == 'asc' ? 1 : -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(replies.map(async post =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,11 +73,10 @@ module.exports = (params, user) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const reposts = await Post
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(reposts.map(async post =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,8 +65,7 @@ async function byNative(res, rej, me, query, offset, max) {
 | 
			
		|||
			},
 | 
			
		||||
			limit: max,
 | 
			
		||||
			skip: offset
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(posts.map(async post =>
 | 
			
		||||
| 
						 | 
				
			
			@ -120,12 +119,11 @@ async function byElasticsearch(res, rej, me, query, offset, max) {
 | 
			
		|||
				_id: {
 | 
			
		||||
					$in: hits
 | 
			
		||||
				}
 | 
			
		||||
			}, {}, {
 | 
			
		||||
			}, {
 | 
			
		||||
				sort: {
 | 
			
		||||
					_id: -1
 | 
			
		||||
				}
 | 
			
		||||
			})
 | 
			
		||||
			.toArray();
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
		posts.map(post => {
 | 
			
		||||
			post._highlight = response.hits.hits.filter(hit => post._id.equals(hit._id))[0].highlight.text[0];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,11 +65,10 @@ module.exports = (params, user, app) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const timeline = await Post
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(timeline.map(async post =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,11 +55,10 @@ module.exports = (params, me) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const users = await User
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(users.map(async user =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,11 +78,10 @@ module.exports = (params, me) =>
 | 
			
		|||
 | 
			
		||||
	// Get followers
 | 
			
		||||
	const following = await Following
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit + 1,
 | 
			
		||||
			sort: { _id: -1 }
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// 「次のページ」があるかどうか
 | 
			
		||||
	const inStock = following.length === limit + 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,11 +78,10 @@ module.exports = (params, me) =>
 | 
			
		|||
 | 
			
		||||
	// Get followers
 | 
			
		||||
	const following = await Following
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit + 1,
 | 
			
		||||
			sort: { _id: -1 }
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// 「次のページ」があるかどうか
 | 
			
		||||
	const inStock = following.length === limit + 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,11 +111,10 @@ module.exports = (params, me) =>
 | 
			
		|||
 | 
			
		||||
	// Issue query
 | 
			
		||||
	const posts = await Post
 | 
			
		||||
		.find(query, {}, {
 | 
			
		||||
		.find(query, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			sort: sort
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(posts.map(async (post) =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,14 +46,13 @@ module.exports = (params, me) =>
 | 
			
		|||
			_id: {
 | 
			
		||||
				$nin: followingIds
 | 
			
		||||
			}
 | 
			
		||||
		}, {}, {
 | 
			
		||||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset,
 | 
			
		||||
			sort: {
 | 
			
		||||
				followers_count: -1
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(users.map(async user =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,8 +63,7 @@ async function byNative(res, rej, me, query, offset, max) {
 | 
			
		|||
			}, {
 | 
			
		||||
				name: new RegExp(escapedQuery)
 | 
			
		||||
			}]
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(users.map(async user =>
 | 
			
		||||
| 
						 | 
				
			
			@ -106,8 +105,7 @@ async function byElasticsearch(res, rej, me, query, offset, max) {
 | 
			
		|||
				_id: {
 | 
			
		||||
					$in: hits
 | 
			
		||||
				}
 | 
			
		||||
			})
 | 
			
		||||
			.toArray();
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
		// Serialize
 | 
			
		||||
		res(await Promise.all(users.map(async user =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,8 +56,7 @@ module.exports = (params, me) =>
 | 
			
		|||
		}, {
 | 
			
		||||
			limit: limit,
 | 
			
		||||
			skip: offset
 | 
			
		||||
		})
 | 
			
		||||
		.toArray();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	// Serialize
 | 
			
		||||
	res(await Promise.all(users.map(async user =>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue