Some bug fixes and clean ups
This commit is contained in:
		
							parent
							
								
									a02ee3a08b
								
							
						
					
					
						commit
						cebea4e94c
					
				
					 8 changed files with 3 additions and 302 deletions
				
			
		| 
						 | 
					@ -1,76 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Module dependencies
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
import $ from 'cafy';
 | 
					 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					 | 
				
			||||||
import Reaction from '../../../../../models/note-reaction';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Aggregate reaction of a note
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param {any} params
 | 
					 | 
				
			||||||
 * @return {Promise<any>}
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
module.exports = (params) => new Promise(async (res, rej) => {
 | 
					 | 
				
			||||||
	// Get 'noteId' parameter
 | 
					 | 
				
			||||||
	const [noteId, noteIdErr] = $(params.noteId).id().$;
 | 
					 | 
				
			||||||
	if (noteIdErr) return rej('invalid noteId param');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Lookup note
 | 
					 | 
				
			||||||
	const note = await Note.findOne({
 | 
					 | 
				
			||||||
		_id: noteId
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (note === null) {
 | 
					 | 
				
			||||||
		return rej('note not found');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const datas = await Reaction
 | 
					 | 
				
			||||||
		.aggregate([
 | 
					 | 
				
			||||||
			{ $match: { noteId: note._id } },
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: { $year: '$createdAt' },
 | 
					 | 
				
			||||||
					month: { $month: '$createdAt' },
 | 
					 | 
				
			||||||
					day: { $dayOfMonth: '$createdAt' }
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $group: {
 | 
					 | 
				
			||||||
				_id: '$date',
 | 
					 | 
				
			||||||
				count: { $sum: 1 }
 | 
					 | 
				
			||||||
			}}
 | 
					 | 
				
			||||||
		]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	datas.forEach(data => {
 | 
					 | 
				
			||||||
		data.date = data._id;
 | 
					 | 
				
			||||||
		delete data._id;
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const graph = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (let i = 0; i < 30; i++) {
 | 
					 | 
				
			||||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		const data = datas.filter(d =>
 | 
					 | 
				
			||||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
					 | 
				
			||||||
		)[0];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (data) {
 | 
					 | 
				
			||||||
			graph.push(data);
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			graph.push({
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: day.getFullYear(),
 | 
					 | 
				
			||||||
					month: day.getMonth() + 1, // In JavaScript, month is zero-based.
 | 
					 | 
				
			||||||
					day: day.getDate()
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				count: 0
 | 
					 | 
				
			||||||
			});
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	res(graph);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,72 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Module dependencies
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
import $ from 'cafy';
 | 
					 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					 | 
				
			||||||
import Reaction from '../../../../../models/note-reaction';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Aggregate reactions of a note
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param {any} params
 | 
					 | 
				
			||||||
 * @return {Promise<any>}
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
module.exports = (params) => new Promise(async (res, rej) => {
 | 
					 | 
				
			||||||
	// Get 'noteId' parameter
 | 
					 | 
				
			||||||
	const [noteId, noteIdErr] = $(params.noteId).id().$;
 | 
					 | 
				
			||||||
	if (noteIdErr) return rej('invalid noteId param');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Lookup note
 | 
					 | 
				
			||||||
	const note = await Note.findOne({
 | 
					 | 
				
			||||||
		_id: noteId
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (note === null) {
 | 
					 | 
				
			||||||
		return rej('note not found');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const startTime = new Date(new Date().setMonth(new Date().getMonth() - 1));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const reactions = await Reaction
 | 
					 | 
				
			||||||
		.find({
 | 
					 | 
				
			||||||
			noteId: note._id,
 | 
					 | 
				
			||||||
			$or: [
 | 
					 | 
				
			||||||
				{ deletedAt: { $exists: false } },
 | 
					 | 
				
			||||||
				{ deletedAt: { $gt: startTime } }
 | 
					 | 
				
			||||||
			]
 | 
					 | 
				
			||||||
		}, {
 | 
					 | 
				
			||||||
			sort: {
 | 
					 | 
				
			||||||
				_id: -1
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			fields: {
 | 
					 | 
				
			||||||
				_id: false,
 | 
					 | 
				
			||||||
				noteId: false
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const graph = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (let i = 0; i < 30; i++) {
 | 
					 | 
				
			||||||
		let day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
					 | 
				
			||||||
		day = new Date(day.setMilliseconds(999));
 | 
					 | 
				
			||||||
		day = new Date(day.setSeconds(59));
 | 
					 | 
				
			||||||
		day = new Date(day.setMinutes(59));
 | 
					 | 
				
			||||||
		day = new Date(day.setHours(23));
 | 
					 | 
				
			||||||
		// day = day.getTime();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		const count = reactions.filter(r =>
 | 
					 | 
				
			||||||
			r.createdAt < day && (r.deletedAt == null || r.deletedAt > day)
 | 
					 | 
				
			||||||
		).length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		graph.push({
 | 
					 | 
				
			||||||
			date: {
 | 
					 | 
				
			||||||
				year: day.getFullYear(),
 | 
					 | 
				
			||||||
				month: day.getMonth() + 1, // In JavaScript, month is zero-based.
 | 
					 | 
				
			||||||
				day: day.getDate()
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			count: count
 | 
					 | 
				
			||||||
		});
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	res(graph);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,75 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Module dependencies
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
import $ from 'cafy';
 | 
					 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Aggregate reply of a note
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param {any} params
 | 
					 | 
				
			||||||
 * @return {Promise<any>}
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
module.exports = (params) => new Promise(async (res, rej) => {
 | 
					 | 
				
			||||||
	// Get 'noteId' parameter
 | 
					 | 
				
			||||||
	const [noteId, noteIdErr] = $(params.noteId).id().$;
 | 
					 | 
				
			||||||
	if (noteIdErr) return rej('invalid noteId param');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Lookup note
 | 
					 | 
				
			||||||
	const note = await Note.findOne({
 | 
					 | 
				
			||||||
		_id: noteId
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (note === null) {
 | 
					 | 
				
			||||||
		return rej('note not found');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const datas = await Note
 | 
					 | 
				
			||||||
		.aggregate([
 | 
					 | 
				
			||||||
			{ $match: { reply: note._id } },
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: { $year: '$createdAt' },
 | 
					 | 
				
			||||||
					month: { $month: '$createdAt' },
 | 
					 | 
				
			||||||
					day: { $dayOfMonth: '$createdAt' }
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $group: {
 | 
					 | 
				
			||||||
				_id: '$date',
 | 
					 | 
				
			||||||
				count: { $sum: 1 }
 | 
					 | 
				
			||||||
			}}
 | 
					 | 
				
			||||||
		]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	datas.forEach(data => {
 | 
					 | 
				
			||||||
		data.date = data._id;
 | 
					 | 
				
			||||||
		delete data._id;
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const graph = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (let i = 0; i < 30; i++) {
 | 
					 | 
				
			||||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		const data = datas.filter(d =>
 | 
					 | 
				
			||||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
					 | 
				
			||||||
		)[0];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (data) {
 | 
					 | 
				
			||||||
			graph.push(data);
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			graph.push({
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: day.getFullYear(),
 | 
					 | 
				
			||||||
					month: day.getMonth() + 1, // In JavaScript, month is zero-based.
 | 
					 | 
				
			||||||
					day: day.getDate()
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				count: 0
 | 
					 | 
				
			||||||
			});
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	res(graph);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,75 +0,0 @@
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Module dependencies
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
import $ from 'cafy';
 | 
					 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Aggregate renote of a note
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param {any} params
 | 
					 | 
				
			||||||
 * @return {Promise<any>}
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
module.exports = (params) => new Promise(async (res, rej) => {
 | 
					 | 
				
			||||||
	// Get 'noteId' parameter
 | 
					 | 
				
			||||||
	const [noteId, noteIdErr] = $(params.noteId).id().$;
 | 
					 | 
				
			||||||
	if (noteIdErr) return rej('invalid noteId param');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Lookup note
 | 
					 | 
				
			||||||
	const note = await Note.findOne({
 | 
					 | 
				
			||||||
		_id: noteId
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (note === null) {
 | 
					 | 
				
			||||||
		return rej('note not found');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const datas = await Note
 | 
					 | 
				
			||||||
		.aggregate([
 | 
					 | 
				
			||||||
			{ $match: { renoteId: note._id } },
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				createdAt: { $add: ['$createdAt', 9 * 60 * 60 * 1000] } // Convert into JST
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $project: {
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: { $year: '$createdAt' },
 | 
					 | 
				
			||||||
					month: { $month: '$createdAt' },
 | 
					 | 
				
			||||||
					day: { $dayOfMonth: '$createdAt' }
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}},
 | 
					 | 
				
			||||||
			{ $group: {
 | 
					 | 
				
			||||||
				_id: '$date',
 | 
					 | 
				
			||||||
				count: { $sum: 1 }
 | 
					 | 
				
			||||||
			}}
 | 
					 | 
				
			||||||
		]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	datas.forEach(data => {
 | 
					 | 
				
			||||||
		data.date = data._id;
 | 
					 | 
				
			||||||
		delete data._id;
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	const graph = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (let i = 0; i < 30; i++) {
 | 
					 | 
				
			||||||
		const day = new Date(new Date().setDate(new Date().getDate() - i));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		const data = datas.filter(d =>
 | 
					 | 
				
			||||||
			d.date.year == day.getFullYear() && d.date.month == day.getMonth() + 1 && d.date.day == day.getDate()
 | 
					 | 
				
			||||||
		)[0];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (data) {
 | 
					 | 
				
			||||||
			graph.push(data);
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			graph.push({
 | 
					 | 
				
			||||||
				date: {
 | 
					 | 
				
			||||||
					year: day.getFullYear(),
 | 
					 | 
				
			||||||
					month: day.getMonth() + 1, // In JavaScript, month is zero-based.
 | 
					 | 
				
			||||||
					day: day.getDate()
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				count: 0
 | 
					 | 
				
			||||||
			});
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	res(graph);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import $ from 'cafy';
 | 
					import $ from 'cafy';
 | 
				
			||||||
import { validateFileName, pack } from '../../../../../models/drive-file';
 | 
					import { validateFileName, pack } from '../../../../../models/drive-file';
 | 
				
			||||||
import create from '../../../../../drive/add-file';
 | 
					import create from '../../../../../services/drive/add-file';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Create a file
 | 
					 * Create a file
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import $ from 'cafy';
 | 
					import $ from 'cafy';
 | 
				
			||||||
import { pack } from '../../../../../models/drive-file';
 | 
					import { pack } from '../../../../../models/drive-file';
 | 
				
			||||||
import uploadFromUrl from '../../../../../drive/upload-from-url';
 | 
					import uploadFromUrl from '../../../../../services/drive/upload-from-url';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Create a file from a URL
 | 
					 * Create a file from a URL
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@ import $ from 'cafy';
 | 
				
			||||||
import Vote from '../../../../../models/poll-vote';
 | 
					import Vote from '../../../../../models/poll-vote';
 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					import Note from '../../../../../models/note';
 | 
				
			||||||
import Watching from '../../../../../models/note-watching';
 | 
					import Watching from '../../../../../models/note-watching';
 | 
				
			||||||
import watch from '../../../../../note/watch';
 | 
					import watch from '../../../../../services/note/watch';
 | 
				
			||||||
import { publishNoteStream } from '../../../../../publishers/stream';
 | 
					import { publishNoteStream } from '../../../../../publishers/stream';
 | 
				
			||||||
import notify from '../../../../../publishers/notify';
 | 
					import notify from '../../../../../publishers/notify';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@
 | 
				
			||||||
 * Module dependencies
 | 
					 * Module dependencies
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import $ from 'cafy';
 | 
					import $ from 'cafy';
 | 
				
			||||||
import Reaction from '../../../../../models/note-reaction';
 | 
					 | 
				
			||||||
import Note from '../../../../../models/note';
 | 
					import Note from '../../../../../models/note';
 | 
				
			||||||
import create from '../../../../../services/note/reaction/create';
 | 
					import create from '../../../../../services/note/reaction/create';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue