From d64dc458999afdc0bfd5f662a583bd1a0f6eebb3 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Mon, 29 Oct 2018 20:32:42 +0900 Subject: User blocking (Following part) (#3035) * block wip * UndoBlock * UnBlock * wip * follow * UI * fix --- src/services/following/requests/create.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/services/following/requests') diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts index d28c93929a..a87e472ad8 100644 --- a/src/services/following/requests/create.ts +++ b/src/services/following/requests/create.ts @@ -5,8 +5,24 @@ import pack from '../../../remote/activitypub/renderer'; import renderFollow from '../../../remote/activitypub/renderer/follow'; import { deliver } from '../../../queue'; import FollowRequest from '../../../models/follow-request'; +import Blocking from '../../../models/blocking'; export default async function(follower: IUser, followee: IUser, requestId?: string) { + // check blocking + const [ blocking, blocked ] = await Promise.all([ + Blocking.findOne({ + blockerId: follower._id, + blockeeId: followee._id, + }), + Blocking.findOne({ + blockerId: followee._id, + blockeeId: follower._id, + }) + ]); + + if (blocking != null) throw new Error('blocking'); + if (blocked != null) throw new Error('blocked'); + await FollowRequest.insert({ createdAt: new Date(), followerId: follower._id, -- cgit v1.2.3-freya