summaryrefslogtreecommitdiff
path: root/src/services/following/requests/create.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/following/requests/create.ts')
-rw-r--r--src/services/following/requests/create.ts16
1 files changed, 16 insertions, 0 deletions
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,