]>
Commit | Line | Data |
---|---|---|
1 | import { ActivityAudience } from '../../../shared/models/activitypub' | |
2 | import { ACTIVITY_PUB } from '../../initializers/constants' | |
3 | import { MActorFollowersUrl } from '../../types/models' | |
4 | ||
5 | function getAudience (actorSender: MActorFollowersUrl, isPublic = true) { | |
6 | return buildAudience([ actorSender.followersUrl ], isPublic) | |
7 | } | |
8 | ||
9 | function buildAudience (followerUrls: string[], isPublic = true) { | |
10 | let to: string[] = [] | |
11 | let cc: string[] = [] | |
12 | ||
13 | if (isPublic) { | |
14 | to = [ ACTIVITY_PUB.PUBLIC ] | |
15 | cc = followerUrls | |
16 | } else { // Unlisted | |
17 | to = [] | |
18 | cc = [] | |
19 | } | |
20 | ||
21 | return { to, cc } | |
22 | } | |
23 | ||
24 | function audiencify<T> (object: T, audience: ActivityAudience) { | |
25 | return { ...audience, ...object } | |
26 | } | |
27 | ||
28 | // --------------------------------------------------------------------------- | |
29 | ||
30 | export { | |
31 | buildAudience, | |
32 | getAudience, | |
33 | audiencify | |
34 | } |