X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fsend%2Fsend-accept.ts;h=4c9bcbb0b3f99086733be1e4d908f412fee85773;hb=bae616273d455d225d131eb17c56db6c20a0b6b3;hp=7579884a79ca43f241a5d325e9bfda903f1918e9;hpb=50d6de9c286abcb34ff4234d56d9cbb803db7665;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/send/send-accept.ts b/server/lib/activitypub/send/send-accept.ts index 7579884a7..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' -import { ActorModel } from '../../../models/activitypub/actor' -import { ActorFollowModel } from '../../../models/activitypub/actor-follow' -import { getActorFollowAcceptActivityPubUrl } from '../url' -import { unicastTo } from './misc' - -async function sendAccept (actorFollow: ActorFollowModel, t: Transaction) { +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 - const url = getActorFollowAcceptActivityPubUrl(actorFollow) - const data = acceptActivityData(url, me) + 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) + + const followData = buildFollowActivity(actorFollow.url, follower, 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,10 +37,11 @@ export { // --------------------------------------------------------------------------- -function acceptActivityData (url: string, byActor: ActorModel): ActivityAccept { +function buildAcceptActivity (url: string, byActor: MActor, followActivityData: ActivityFollow): ActivityAccept { return { type: 'Accept', id: url, - actor: byActor.url + actor: byActor.url, + object: followActivityData } }