X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fsend%2Fsend-follow.ts;h=57501dadb0551eecf31342749be1bf9a4ca60fd9;hb=bae616273d455d225d131eb17c56db6c20a0b6b3;hp=2faffe6e703d5332b200daf5cffe8cff40d373b9;hpb=8e0fd45e14993793c64e06682a4a05c29068d398;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/send/send-follow.ts b/server/lib/activitypub/send/send-follow.ts index 2faffe6e7..57501dadb 100644 --- a/server/lib/activitypub/send/send-follow.ts +++ b/server/lib/activitypub/send/send-follow.ts @@ -1,23 +1,26 @@ -import { ActivityFollow } from '../../../../shared/models/activitypub' -import { ActorModel } from '../../../models/activitypub/actor' -import { ActorFollowModel } from '../../../models/activitypub/actor-follow' -import { getActorFollowActivityPubUrl } from '../url' -import { unicastTo } from './utils' +import { Transaction } from 'sequelize' +import { ActivityFollow } from '@shared/models' import { logger } from '../../../helpers/logger' +import { MActor, MActorFollowActors } from '../../../types/models' +import { unicastTo } from './shared/send-utils' -function sendFollow (actorFollow: ActorFollowModel) { +function sendFollow (actorFollow: MActorFollowActors, t: Transaction) { const me = actorFollow.ActorFollower const following = actorFollow.ActorFollowing + // Same server as ours + if (!following.serverId) return + logger.info('Creating job to send follow request to %s.', following.url) - const url = getActorFollowActivityPubUrl(actorFollow) - const data = followActivityData(url, me, following) + const data = buildFollowActivity(actorFollow.url, me, following) - return unicastTo(data, me, following.inboxUrl) + return t.afterCommit(() => { + return unicastTo({ data, byActor: me, toActorUrl: following.inboxUrl, contextType: 'Follow' }) + }) } -function followActivityData (url: string, byActor: ActorModel, targetActor: ActorModel): ActivityFollow { +function buildFollowActivity (url: string, byActor: MActor, targetActor: MActor): ActivityFollow { return { type: 'Follow', id: url, @@ -30,5 +33,5 @@ function followActivityData (url: string, byActor: ActorModel, targetActor: Acto export { sendFollow, - followActivityData + buildFollowActivity }