summaryrefslogtreecommitdiff
path: root/src/queue/processors/db/delete-post-dependents.ts
blob: fb6617e9522b5e0d10010c1349f2c66476eb3927 (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 ({ data }, done) => 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 })
	]))
]).then(() => done(), done);