+
+// ---------------------------------------------------------------------------
+
+function processUndoFollow (follower: MActorSignature, followActivity: ActivityFollow) {
+ return sequelizeTypescript.transaction(async t => {
+ const following = await ActorModel.loadByUrlAndPopulateAccountAndChannel(followActivity.object, t)
+ const actorFollow = await ActorFollowModel.loadByActorAndTarget(follower.id, following.id, t)
+
+ if (!actorFollow) {
+ logger.warn('Unknown actor follow %d -> %d.', follower.id, following.id)
+ return
+ }
+
+ await actorFollow.destroy({ transaction: t })
+
+ return undefined
+ })
+}