X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fsend%2Fsend-accept.ts;h=4c9bcbb0b3f99086733be1e4d908f412fee85773;hb=bae616273d455d225d131eb17c56db6c20a0b6b3;hp=d3f8fbe38475dced9725849aeeaff49306f756b2;hpb=25ed141c7c7631ef21d8764c1163fbf8a6591391;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/send/send-accept.ts b/server/lib/activitypub/send/send-accept.ts index d3f8fbe38..4c9bcbb0b 100644 --- a/server/lib/activitypub/send/send-accept.ts +++ b/server/lib/activitypub/send/send-accept.ts @@ -1,18 +1,32 @@ -import { Transaction } from 'sequelize' -import { ActivityAccept } from '../../../../shared/models/activitypub/activity' -import { AccountInstance } from '../../../models' -import { AccountFollowInstance } from '../../../models/account/account-follow-interface' -import { unicastTo } from './misc' -import { getAccountFollowAcceptActivityPubUrl } from '../url' +import { ActivityAccept, ActivityFollow } from '@shared/models' +import { logger } from '../../../helpers/logger' +import { MActor, MActorFollowActors } from '../../../types/models' +import { getLocalActorFollowAcceptActivityPubUrl } from '../url' +import { buildFollowActivity } from './send-follow' +import { unicastTo } from './shared/send-utils' + +function sendAccept (actorFollow: MActorFollowActors) { + const follower = actorFollow.ActorFollower + const me = actorFollow.ActorFollowing + + if (!follower.serverId) { // This should never happen + logger.warn('Do not sending accept to local follower.') + return + } + + logger.info('Creating job to accept follower %s.', follower.url) -async function sendAccept (accountFollow: AccountFollowInstance, t: Transaction) { - const follower = accountFollow.AccountFollower - const me = accountFollow.AccountFollowing + const followData = buildFollowActivity(actorFollow.url, follower, me) - const url = getAccountFollowAcceptActivityPubUrl(accountFollow) - const data = acceptActivityData(url, me) + const url = getLocalActorFollowAcceptActivityPubUrl(actorFollow) + const data = buildAcceptActivity(url, me, followData) - return unicastTo(data, me, follower.inboxUrl, t) + return unicastTo({ + data, + byActor: me, + toActorUrl: follower.inboxUrl, + contextType: 'Accept' + }) } // --------------------------------------------------------------------------- @@ -23,12 +37,11 @@ export { // --------------------------------------------------------------------------- -function acceptActivityData (url: string, byAccount: AccountInstance) { - const activity: ActivityAccept = { +function buildAcceptActivity (url: string, byActor: MActor, followActivityData: ActivityFollow): ActivityAccept { + return { type: 'Accept', id: url, - actor: byAccount.url + actor: byActor.url, + object: followActivityData } - - return activity }