]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/activitypub/process/process-follow.ts
Remove activitypub helper
[github/Chocobozzz/PeerTube.git] / server / lib / activitypub / process / process-follow.ts
index 5562f079891764e9e1efdbcf89881231a5179797..93df7e191e2a7f6b3c2061a4290c98e86b998905 100644 (file)
@@ -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