diff --git a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts index 58249d2de..037f660c6 100644 --- a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts +++ b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts @@ -1,5 +1,5 @@ import { CacheableRemoteUser } from '@/models/entities/user.js'; -import accept from '@/services/following/requests/accept.js'; +import { acceptFollowRequest } from '@/services/following/requests/accept.js'; import { relayAccepted } from '@/services/relay.js'; import { IFollow } from '@/remote/activitypub/type.js'; import { DbResolver } from '@/remote/activitypub/db-resolver.js'; @@ -24,6 +24,6 @@ export default async (actor: CacheableRemoteUser, activity: IFollow): Promise { const requests = await FollowRequests.findBy({ followeeId: user.id, }); for (const request of requests) { const follower = await Users.findOneByOrFail({ id: request.followerId }); - accept(user, follower); + acceptFollowRequest(user, follower); } } diff --git a/packages/backend/src/services/following/requests/accept.ts b/packages/backend/src/services/following/requests/accept.ts index 66abb0646..231075100 100644 --- a/packages/backend/src/services/following/requests/accept.ts +++ b/packages/backend/src/services/following/requests/accept.ts @@ -3,12 +3,17 @@ import renderFollow from '@/remote/activitypub/renderer/follow.js'; import renderAccept from '@/remote/activitypub/renderer/accept.js'; import { deliver } from '@/queue/index.js'; import { publishMainStream } from '@/services/stream.js'; -import { User, CacheableUser } from '@/models/entities/user.js'; +import { User } from '@/models/entities/user.js'; import { FollowRequests, Users } from '@/models/index.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; import { insertFollowingDoc } from '../create.js'; -export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, follower: CacheableUser) { +/** + * Accept a follow request from user `followee` to follow `follower`. + * @param followee User who is being followed + * @param follower User making the follow request + */ +export async function acceptFollowRequest(followee: User, follower: User): Promise { const request = await FollowRequests.findOneBy({ followeeId: followee.id, followerId: follower.id, diff --git a/packages/backend/src/services/following/requests/cancel.ts b/packages/backend/src/services/following/requests/cancel.ts index fc13381db..999ebc64e 100644 --- a/packages/backend/src/services/following/requests/cancel.ts +++ b/packages/backend/src/services/following/requests/cancel.ts @@ -7,7 +7,12 @@ import { IdentifiableError } from '@/misc/identifiable-error.js'; import { User } from '@/models/entities/user.js'; import { Users, FollowRequests } from '@/models/index.js'; -export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox'] }, follower: { id: User['id']; host: User['host']; uri: User['host'] }) { +/** + * Cancel a follow request from `follower` to `followee`. + * @param followee User that was going to be followed + * @param follower User who is making the follow request + */ +export async function cancelFollowRequest(followee: User, follower: User): Promise { if (Users.isRemoteUser(followee)) { const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); diff --git a/packages/backend/src/services/following/requests/create.ts b/packages/backend/src/services/following/requests/create.ts index e8971ba57..81fec5fe4 100644 --- a/packages/backend/src/services/following/requests/create.ts +++ b/packages/backend/src/services/following/requests/create.ts @@ -7,7 +7,13 @@ import { Blockings, FollowRequests, Users } from '@/models/index.js'; import { genId } from '@/misc/gen-id.js'; import { createNotification } from '@/services/create-notification.js'; -export default async function(follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, requestId?: string) { +/** + * Make a follow request from `follower` to `followee`. + * @param follower User making the follow request + * @param followee User to make the follow request to + * @param requestId Follow request ID + */ +export async function createFollowRequest(follower: User, followee: User, requestId?: string): Promise { if (follower.id === followee.id) return; // check blocking