From 6502c3d43e512e968ad49f5a3bc9abc302471e18 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 12 Jan 2018 10:02:11 +0100 Subject: Avoid making retried requests to dead followers --- server/models/activitypub/actor-follow.ts | 28 ++++++++++++++++++++++++++++ server/models/activitypub/actor.ts | 3 +++ 2 files changed, 31 insertions(+) (limited to 'server/models') diff --git a/server/models/activitypub/actor-follow.ts b/server/models/activitypub/actor-follow.ts index 920c83d88..de5bb6f74 100644 --- a/server/models/activitypub/actor-follow.ts +++ b/server/models/activitypub/actor-follow.ts @@ -163,6 +163,34 @@ export class ActorFollowModel extends Model { return ActorFollowModel.findOne(query) } + static loadByFollowerInbox (url: string, t?: Sequelize.Transaction) { + const query = { + where: { + state: 'accepted' + }, + include: [ + { + model: ActorModel, + required: true, + as: 'ActorFollower', + where: { + [Sequelize.Op.or]: [ + { + inboxUrl: url + }, + { + sharedInboxUrl: url + } + ] + } + } + ], + transaction: t + } as any // FIXME: typings does not work + + return ActorFollowModel.findOne(query) + } + static listFollowingForApi (id: number, start: number, count: number, sort: string) { const query = { distinct: true, diff --git a/server/models/activitypub/actor.ts b/server/models/activitypub/actor.ts index 6c74aa61b..17f69f7a7 100644 --- a/server/models/activitypub/actor.ts +++ b/server/models/activitypub/actor.ts @@ -68,6 +68,9 @@ enum ScopeNames { { fields: [ 'preferredUsername', 'serverId' ], unique: true + }, + { + fields: [ 'inboxUrl', 'sharedInboxUrl' ] } ] }) -- cgit v1.2.3