summaryrefslogtreecommitdiff
path: root/src/queue/processors/db/delete-post-dependents.ts
blob: 6de21eb053a129424fff781f671e8dd44ccf866b (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 })
	]))
]);