X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fprocess%2Fprocess-follow.ts;h=93df7e191e2a7f6b3c2061a4290c98e86b998905;hb=7e98a7df7d04e19ba67163a86c7b876d78d76839;hp=9009c646961b49de05af9a8cfc802dc1ff05a11a;hpb=20213fbd2a366dffc35aa7dddad71323893f8d62;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/process/process-follow.ts b/server/lib/activitypub/process/process-follow.ts index 9009c6469..93df7e191 100644 --- a/server/lib/activitypub/process/process-follow.ts +++ b/server/lib/activitypub/process/process-follow.ts @@ -1,10 +1,10 @@ import { getServerActor } from '@server/models/application/application' import { ActivityFollow } from '../../../../shared/models/activitypub' -import { getAPId } from '../../../helpers/activitypub' import { retryTransactionWrapper } from '../../../helpers/database-utils' import { logger } from '../../../helpers/logger' import { CONFIG } from '../../../initializers/config' import { sequelizeTypescript } from '../../../initializers/database' +import { getAPId } from '../../../lib/activitypub/activity' import { ActorModel } from '../../../models/actor/actor' import { ActorFollowModel } from '../../../models/actor/actor-follow' import { APProcessorOptions } from '../../../types/activitypub-processor.model' @@ -43,25 +43,18 @@ async function processFollow (byActor: MActorSignature, activityId: string, targ if (isFollowingInstance && CONFIG.FOLLOWERS.INSTANCE.ENABLED === false) { logger.info('Rejecting %s because instance followers are disabled.', targetActor.url) - await sendReject(activityId, byActor, targetActor) + sendReject(activityId, byActor, targetActor) return { actorFollow: undefined as MActorFollowActors } } - const [ actorFollow, created ] = await ActorFollowModel.findOrCreate({ - where: { - actorId: byActor.id, - targetActorId: targetActor.id - }, - defaults: { - actorId: byActor.id, - targetActorId: targetActor.id, - url: activityId, - - state: CONFIG.FOLLOWERS.INSTANCE.MANUAL_APPROVAL - ? 'pending' - : 'accepted' - }, + const [ actorFollow, created ] = await ActorFollowModel.findOrCreateCustom({ + byActor, + targetActor, + activityId, + state: CONFIG.FOLLOWERS.INSTANCE.MANUAL_APPROVAL + ? 'pending' + : 'accepted', transaction: t }) @@ -84,8 +77,9 @@ async function processFollow (byActor: MActorSignature, activityId: string, targ // Target sends to actor he accepted the follow request if (actorFollow.state === 'accepted') { - await sendAccept(actorFollow) - await autoFollowBackIfNeeded(actorFollow) + sendAccept(actorFollow) + + await autoFollowBackIfNeeded(actorFollow, t) } return { actorFollow, created, isFollowingInstance, targetActor }