summaryrefslogtreecommitdiff
path: root/src/queue/processors/db/delete-post-dependents.ts
blob: 879c41ec9c30280da325c6a73655825ffe97c136 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import Favorite from '../../models/favorite';
import Notification from '../../models/notification';
import PollVote from '../../models/poll-vote';
import PostReaction from '../../models/post-reaction';
import PostWatching from '../../models/post-watching';
import Post from '../../models/post';

export default async ({ data }) => Promise.all([
	Favorite.remove({ postId: data._id }),
	Notification.remove({ postId: data._id }),
	PollVote.remove({ postId: data._id }),
	PostReaction.remove({ postId: data._id }),
	PostWatching.remove({ postId: data._id }),
	Post.find({ repostId: data._id }).then(reposts => Promise.all([
		Notification.remove({
			postId: {
				$in: reposts.map(({ _id }) => _id)
			}
		}),
		Post.remove({ repostId: data._id })
	]))
]);