aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/custom-validators/activitypub
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-02-26 10:55:40 +0100
committerChocobozzz <chocobozzz@cpy.re>2019-03-18 11:17:59 +0100
commit418d092afa81e2c8fe8ac6838fc4b5eb0af6a782 (patch)
tree5e9bc5604fd5d66a006cfebb7acdbdd5486e5d1e /server/helpers/custom-validators/activitypub
parentb427febb4d5cebf03b815bca2c59af6e82491569 (diff)
downloadPeerTube-418d092afa81e2c8fe8ac6838fc4b5eb0af6a782.tar.gz
PeerTube-418d092afa81e2c8fe8ac6838fc4b5eb0af6a782.tar.zst
PeerTube-418d092afa81e2c8fe8ac6838fc4b5eb0af6a782.zip
Playlist server API
Diffstat (limited to 'server/helpers/custom-validators/activitypub')
-rw-r--r--server/helpers/custom-validators/activitypub/activity.ts3
-rw-r--r--server/helpers/custom-validators/activitypub/playlist.ts25
2 files changed, 28 insertions, 0 deletions
diff --git a/server/helpers/custom-validators/activitypub/activity.ts b/server/helpers/custom-validators/activitypub/activity.ts
index b24590d9d..e0d170d9d 100644
--- a/server/helpers/custom-validators/activitypub/activity.ts
+++ b/server/helpers/custom-validators/activitypub/activity.ts
@@ -9,6 +9,7 @@ import { isViewActivityValid } from './view'
9import { exists } from '../misc' 9import { exists } from '../misc'
10import { isCacheFileObjectValid } from './cache-file' 10import { isCacheFileObjectValid } from './cache-file'
11import { isFlagActivityValid } from './flag' 11import { isFlagActivityValid } from './flag'
12import { isPlaylistObjectValid } from './playlist'
12 13
13function isRootActivityValid (activity: any) { 14function isRootActivityValid (activity: any) {
14 return Array.isArray(activity['@context']) && ( 15 return Array.isArray(activity['@context']) && (
@@ -78,6 +79,7 @@ function checkCreateActivity (activity: any) {
78 isViewActivityValid(activity.object) || 79 isViewActivityValid(activity.object) ||
79 isDislikeActivityValid(activity.object) || 80 isDislikeActivityValid(activity.object) ||
80 isFlagActivityValid(activity.object) || 81 isFlagActivityValid(activity.object) ||
82 isPlaylistObjectValid(activity.object) ||
81 83
82 isCacheFileObjectValid(activity.object) || 84 isCacheFileObjectValid(activity.object) ||
83 sanitizeAndCheckVideoCommentObject(activity.object) || 85 sanitizeAndCheckVideoCommentObject(activity.object) ||
@@ -89,6 +91,7 @@ function checkUpdateActivity (activity: any) {
89 return isBaseActivityValid(activity, 'Update') && 91 return isBaseActivityValid(activity, 'Update') &&
90 ( 92 (
91 isCacheFileObjectValid(activity.object) || 93 isCacheFileObjectValid(activity.object) ||
94 isPlaylistObjectValid(activity.object) ||
92 sanitizeAndCheckVideoTorrentObject(activity.object) || 95 sanitizeAndCheckVideoTorrentObject(activity.object) ||
93 sanitizeAndCheckActorObject(activity.object) 96 sanitizeAndCheckActorObject(activity.object)
94 ) 97 )
diff --git a/server/helpers/custom-validators/activitypub/playlist.ts b/server/helpers/custom-validators/activitypub/playlist.ts
new file mode 100644
index 000000000..ecdc7975e
--- /dev/null
+++ b/server/helpers/custom-validators/activitypub/playlist.ts
@@ -0,0 +1,25 @@
1import { exists } from '../misc'
2import { PlaylistObject } from '../../../../shared/models/activitypub/objects/playlist-object'
3import * as validator from 'validator'
4import { PlaylistElementObject } from '../../../../shared/models/activitypub/objects/playlist-element-object'
5import { isActivityPubUrlValid } from './misc'
6
7function isPlaylistObjectValid (object: PlaylistObject) {
8 return exists(object) &&
9 object.type === 'Playlist' &&
10 validator.isInt(object.totalItems + '')
11}
12
13function isPlaylistElementObjectValid (object: PlaylistElementObject) {
14 return exists(object) &&
15 object.type === 'PlaylistElement' &&
16 validator.isInt(object.position + '') &&
17 isActivityPubUrlValid(object.url)
18}
19
20// ---------------------------------------------------------------------------
21
22export {
23 isPlaylistObjectValid,
24 isPlaylistElementObjectValid
25}