wip
This commit is contained in:
parent
a015524cb5
commit
991635f919
|
@ -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…
Reference in New Issue