]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/lib/activitypub/process/process.ts
Correctly forward like/dislikes and undo
[github/Chocobozzz/PeerTube.git] / server / lib / activitypub / process / process.ts
CommitLineData
c986175d 1import { Activity, ActivityType } from '../../../../shared/models/activitypub/activity'
0032ebe9 2import { logger } from '../../../helpers/logger'
c986175d
C
3import { AccountInstance } from '../../../models/account/account-interface'
4import { processAcceptActivity } from './process-accept'
5import { processAddActivity } from './process-add'
6import { processAnnounceActivity } from './process-announce'
7import { processCreateActivity } from './process-create'
8import { processDeleteActivity } from './process-delete'
9import { processFollowActivity } from './process-follow'
0032ebe9 10import { processLikeActivity } from './process-like'
c986175d
C
11import { processUndoActivity } from './process-undo'
12import { processUpdateActivity } from './process-update'
c986175d
C
13
14const processActivity: { [ P in ActivityType ]: (activity: Activity, inboxAccount?: AccountInstance) => Promise<any> } = {
15 Create: processCreateActivity,
16 Add: processAddActivity,
17 Update: processUpdateActivity,
18 Delete: processDeleteActivity,
19 Follow: processFollowActivity,
20 Accept: processAcceptActivity,
21 Announce: processAnnounceActivity,
0032ebe9
C
22 Undo: processUndoActivity,
23 Like: processLikeActivity
c986175d
C
24}
25
26async function processActivities (activities: Activity[], inboxAccount?: AccountInstance) {
27 for (const activity of activities) {
28 const activityProcessor = processActivity[activity.type]
29 if (activityProcessor === undefined) {
30 logger.warn('Unknown activity type %s.', activity.type, { activityId: activity.id })
31 continue
32 }
33
16b90975
C
34 try {
35 await activityProcessor(activity, inboxAccount)
36 } catch (err) {
37 logger.warn('Cannot process activity %s.', activity.type, err)
38 }
c986175d
C
39 }
40}
41
42export {
43 processActivities
44}