]>
Commit | Line | Data |
---|---|---|
4bbc373f | 1 | import { ActivityReject } from '../../../../shared/models/activitypub/activity' |
80fdaf06 | 2 | import { sequelizeTypescript } from '../../../initializers/database' |
7d9ba5c0 | 3 | import { ActorFollowModel } from '../../../models/actor/actor-follow' |
26d6bf65 C |
4 | import { APProcessorOptions } from '../../../types/activitypub-processor.model' |
5 | import { MActor } from '../../../types/models' | |
4bbc373f | 6 | |
1198edf4 C |
7 | async function processRejectActivity (options: APProcessorOptions<ActivityReject>) { |
8 | const { byActor: targetActor, inboxActor } = options | |
4bbc373f C |
9 | if (inboxActor === undefined) throw new Error('Need to reject on explicit inbox.') |
10 | ||
4bbc373f C |
11 | return processReject(inboxActor, targetActor) |
12 | } | |
13 | ||
14 | // --------------------------------------------------------------------------- | |
15 | ||
16 | export { | |
17 | processRejectActivity | |
18 | } | |
19 | ||
20 | // --------------------------------------------------------------------------- | |
21 | ||
453e83ea | 22 | async function processReject (follower: MActor, targetActor: MActor) { |
4bbc373f | 23 | return sequelizeTypescript.transaction(async t => { |
12ba460e | 24 | const actorFollow = await ActorFollowModel.loadByActorAndTarget(follower.id, targetActor.id, t) |
4bbc373f | 25 | |
12ba460e | 26 | if (!actorFollow) throw new Error(`'Unknown actor follow ${follower.id} -> ${targetActor.id}.`) |
4bbc373f | 27 | |
927fa4b1 C |
28 | actorFollow.state = 'rejected' |
29 | await actorFollow.save({ transaction: t }) | |
4bbc373f C |
30 | |
31 | return undefined | |
32 | }) | |
33 | } |