summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/kernel/follow.ts
blob: 3183207afa874b073fd505c3654a08e1f7ac58d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { IRemoteUser } from '@/models/entities/user';
import follow from '@/services/following/create';
import { IFollow } from '../type';
import DbResolver from '../db-resolver';

export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
	const dbResolver = new DbResolver();
	const followee = await dbResolver.getUserFromApId(activity.object);

	if (followee == null) {
		return `skip: followee not found`;
	}

	if (followee.host != null) {
		return `skip: フォローしようとしているユーザーはローカルユーザーではありません`;
	}

	await follow(actor, followee, activity.id);
	return `ok`;
};