]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/helpers/custom-validators/activitypub/activity.ts
Handle announces in inbox
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / activitypub / activity.ts
CommitLineData
0d0e8dd0 1import * as validator from 'validator'
350e31d6
C
2import { isAccountAcceptActivityValid, isAccountDeleteActivityValid, isAccountFollowActivityValid } from './account'
3import { isActivityPubUrlValid } from './misc'
0d0e8dd0 4import {
d8465018
C
5 isVideoAnnounceValid,
6 isVideoChannelAnnounceValid,
0d0e8dd0 7 isVideoChannelCreateActivityValid,
350e31d6
C
8 isVideoChannelDeleteActivityValid,
9 isVideoChannelUpdateActivityValid,
d8465018 10 isVideoFlagValid,
0d0e8dd0 11 isVideoTorrentAddActivityValid,
350e31d6
C
12 isVideoTorrentDeleteActivityValid,
13 isVideoTorrentUpdateActivityValid
0d0e8dd0
C
14} from './videos'
15
16function isRootActivityValid (activity: any) {
17 return Array.isArray(activity['@context']) &&
18 (
19 (activity.type === 'Collection' || activity.type === 'OrderedCollection') &&
20 validator.isInt(activity.totalItems, { min: 0 }) &&
21 Array.isArray(activity.items)
22 ) ||
23 (
350e31d6
C
24 isActivityPubUrlValid(activity.id) &&
25 isActivityPubUrlValid(activity.actor)
0d0e8dd0
C
26 )
27}
28
29function isActivityValid (activity: any) {
30 return isVideoTorrentAddActivityValid(activity) ||
31 isVideoChannelCreateActivityValid(activity) ||
32 isVideoTorrentUpdateActivityValid(activity) ||
350e31d6
C
33 isVideoChannelUpdateActivityValid(activity) ||
34 isVideoTorrentDeleteActivityValid(activity) ||
35 isVideoChannelDeleteActivityValid(activity) ||
36 isAccountDeleteActivityValid(activity) ||
37 isAccountFollowActivityValid(activity) ||
d8465018
C
38 isAccountAcceptActivityValid(activity) ||
39 isVideoFlagValid(activity) ||
40 isVideoAnnounceValid(activity) ||
41 isVideoChannelAnnounceValid(activity)
0d0e8dd0
C
42}
43
44// ---------------------------------------------------------------------------
45
46export {
47 isRootActivityValid,
48 isActivityValid
49}