]>
Commit | Line | Data |
---|---|---|
1e7eb25f | 1 | import { Transaction } from 'sequelize' |
de94ac86 | 2 | import { getVideoDislikeActivityPubUrlByLocalActor } from '../url' |
1e7eb25f C |
3 | import { logger } from '../../../helpers/logger' |
4 | import { ActivityAudience, ActivityDislike } from '../../../../shared/models/activitypub' | |
5 | import { sendVideoRelatedActivity } from './utils' | |
6 | import { audiencify, getAudience } from '../audience' | |
26d6bf65 | 7 | import { MActor, MActorAudience, MVideoAccountLight, MVideoUrl } from '../../../types/models' |
1e7eb25f | 8 | |
a1587156 | 9 | function sendDislike (byActor: MActor, video: MVideoAccountLight, t: Transaction) { |
1e7eb25f C |
10 | logger.info('Creating job to dislike %s.', video.url) |
11 | ||
12 | const activityBuilder = (audience: ActivityAudience) => { | |
de94ac86 | 13 | const url = getVideoDislikeActivityPubUrlByLocalActor(byActor, video) |
1e7eb25f C |
14 | |
15 | return buildDislikeActivity(url, byActor, video, audience) | |
16 | } | |
17 | ||
18 | return sendVideoRelatedActivity(activityBuilder, { byActor, video, transaction: t }) | |
19 | } | |
20 | ||
453e83ea | 21 | function buildDislikeActivity (url: string, byActor: MActorAudience, video: MVideoUrl, audience?: ActivityAudience): ActivityDislike { |
1e7eb25f C |
22 | if (!audience) audience = getAudience(byActor) |
23 | ||
24 | return audiencify( | |
25 | { | |
26 | id: url, | |
27 | type: 'Dislike' as 'Dislike', | |
28 | actor: byActor.url, | |
29 | object: video.url | |
30 | }, | |
31 | audience | |
32 | ) | |
33 | } | |
34 | ||
35 | // --------------------------------------------------------------------------- | |
36 | ||
37 | export { | |
38 | sendDislike, | |
39 | buildDislikeActivity | |
40 | } |