wip
This commit is contained in:
		
							parent
							
								
									a015524cb5
								
							
						
					
					
						commit
						991635f919
					
				
					 3 changed files with 40 additions and 1 deletions
				
			
		| 
						 | 
					@ -5,12 +5,13 @@ import db from '../db/mongodb';
 | 
				
			||||||
import { IUser, pack as packUser } from './user';
 | 
					import { IUser, pack as packUser } from './user';
 | 
				
			||||||
import { pack as packApp } from './app';
 | 
					import { pack as packApp } from './app';
 | 
				
			||||||
import { pack as packChannel } from './channel';
 | 
					import { pack as packChannel } from './channel';
 | 
				
			||||||
import Vote from './poll-vote';
 | 
					import Vote, { deletePollVote } from './poll-vote';
 | 
				
			||||||
import Reaction, { deleteNoteReaction } from './note-reaction';
 | 
					import Reaction, { deleteNoteReaction } from './note-reaction';
 | 
				
			||||||
import { pack as packFile } from './drive-file';
 | 
					import { pack as packFile } from './drive-file';
 | 
				
			||||||
import NoteWatching, { deleteNoteWatching } from './note-watching';
 | 
					import NoteWatching, { deleteNoteWatching } from './note-watching';
 | 
				
			||||||
import NoteReaction from './note-reaction';
 | 
					import NoteReaction from './note-reaction';
 | 
				
			||||||
import Favorite, { deleteFavorite } from './favorite';
 | 
					import Favorite, { deleteFavorite } from './favorite';
 | 
				
			||||||
 | 
					import PollVote from './poll-vote';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const Note = db.get<INote>('notes');
 | 
					const Note = db.get<INote>('notes');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -113,6 +114,11 @@ export async function deleteNote(note: string | mongo.ObjectID | INote) {
 | 
				
			||||||
		await NoteReaction.find({ noteId: n._id })
 | 
							await NoteReaction.find({ noteId: n._id })
 | 
				
			||||||
	).map(x => deleteNoteReaction(x)));
 | 
						).map(x => deleteNoteReaction(x)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// この投稿に対するPollVoteをすべて削除
 | 
				
			||||||
 | 
						await Promise.all((
 | 
				
			||||||
 | 
							await PollVote.find({ noteId: n._id })
 | 
				
			||||||
 | 
						).map(x => deletePollVote(x)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// この投稿に対するFavoriteをすべて削除
 | 
						// この投稿に対するFavoriteをすべて削除
 | 
				
			||||||
	await Promise.all((
 | 
						await Promise.all((
 | 
				
			||||||
		await Favorite.find({ noteId: n._id })
 | 
							await Favorite.find({ noteId: n._id })
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,3 +11,30 @@ export interface IPollVote {
 | 
				
			||||||
	noteId: mongo.ObjectID;
 | 
						noteId: mongo.ObjectID;
 | 
				
			||||||
	choice: number;
 | 
						choice: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * PollVoteを物理削除します
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export async function deletePollVote(pollVote: string | mongo.ObjectID | IPollVote) {
 | 
				
			||||||
 | 
						let p: IPollVote;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Populate
 | 
				
			||||||
 | 
						if (mongo.ObjectID.prototype.isPrototypeOf(pollVote)) {
 | 
				
			||||||
 | 
							p = await PollVote.findOne({
 | 
				
			||||||
 | 
								_id: pollVote
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						} else if (typeof pollVote === 'string') {
 | 
				
			||||||
 | 
							p = await PollVote.findOne({
 | 
				
			||||||
 | 
								_id: new mongo.ObjectID(pollVote)
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							p = pollVote as IPollVote;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (p == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// このPollVoteを削除
 | 
				
			||||||
 | 
						await PollVote.remove({
 | 
				
			||||||
 | 
							_id: p._id
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@ import MessagingMessage, { deleteMessagingMessage } from './messaging-message';
 | 
				
			||||||
import MessagingHistory, { deleteMessagingHistory } from './messaging-history';
 | 
					import MessagingHistory, { deleteMessagingHistory } from './messaging-history';
 | 
				
			||||||
import DriveFile, { deleteDriveFile } from './drive-file';
 | 
					import DriveFile, { deleteDriveFile } from './drive-file';
 | 
				
			||||||
import DriveFolder, { deleteDriveFolder } from './drive-folder';
 | 
					import DriveFolder, { deleteDriveFolder } from './drive-folder';
 | 
				
			||||||
 | 
					import PollVote, { deletePollVote } from './poll-vote';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const User = db.get<IUser>('users');
 | 
					const User = db.get<IUser>('users');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -171,6 +172,11 @@ export async function deleteUser(user: string | mongo.ObjectID | IUser) {
 | 
				
			||||||
		await NoteWatching.find({ userId: u._id })
 | 
							await NoteWatching.find({ userId: u._id })
 | 
				
			||||||
	).map(x => deleteNoteWatching(x)));
 | 
						).map(x => deleteNoteWatching(x)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// このユーザーのPollVoteをすべて削除
 | 
				
			||||||
 | 
						await Promise.all((
 | 
				
			||||||
 | 
							await PollVote.find({ userId: u._id })
 | 
				
			||||||
 | 
						).map(x => deletePollVote(x)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// このユーザーのFavoriteをすべて削除
 | 
						// このユーザーのFavoriteをすべて削除
 | 
				
			||||||
	await Promise.all((
 | 
						await Promise.all((
 | 
				
			||||||
		await Favorite.find({ userId: u._id })
 | 
							await Favorite.find({ userId: u._id })
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue