X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fprocess%2Fprocess-follow.ts;h=93df7e191e2a7f6b3c2061a4290c98e86b998905;hb=7e98a7df7d04e19ba67163a86c7b876d78d76839;hp=5562f079891764e9e1efdbcf89881231a5179797;hpb=1cf0df024e58432da39fe2d1b317fb5c9ab8bd2e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/process/process-follow.ts b/server/lib/activitypub/process/process-follow.ts index 5562f0798..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' @@ -48,23 +48,15 @@ async function processFollow (byActor: MActorSignature, activityId: string, targ return { actorFollow: undefined as MActorFollowActors } } - // Don't use findOrCreate by sequelize that breaks our actor follow hooks - let created = false - let actorFollow: MActorFollowActors = await ActorFollowModel.loadByActorAndTarget(byActor.id, targetActor.id, t) - - if (!actorFollow) { - created = true - - actorFollow = await ActorFollowModel.create({ - actorId: byActor.id, - targetActorId: targetActor.id, - url: activityId, - - state: CONFIG.FOLLOWERS.INSTANCE.MANUAL_APPROVAL - ? 'pending' - : 'accepted' - }, { transaction: t }) - } + const [ actorFollow, created ] = await ActorFollowModel.findOrCreateCustom({ + byActor, + targetActor, + activityId, + state: CONFIG.FOLLOWERS.INSTANCE.MANUAL_APPROVAL + ? 'pending' + : 'accepted', + transaction: t + }) // Set the follow as accepted if the remote actor follows a channel or account // Or if the instance automatically accepts followers