Merge branch 'feature/correctly-send-activities' into develop
[oweals/peertube.git] / server / helpers / custom-validators / activitypub / cache-file.ts
1 import { isActivityPubUrlValid } from './misc'
2 import { isRemoteVideoUrlValid } from './videos'
3 import { exists, isDateValid } from '../misc'
4 import { CacheFileObject } from '../../../../shared/models/activitypub/objects'
5
6 function isCacheFileObjectValid (object: CacheFileObject) {
7   return exists(object) &&
8     object.type === 'CacheFile' &&
9     isDateValid(object.expires) &&
10     isActivityPubUrlValid(object.object) &&
11     (isRemoteVideoUrlValid(object.url) || isPlaylistRedundancyUrlValid(object.url))
12 }
13
14 // ---------------------------------------------------------------------------
15
16 export {
17   isCacheFileObjectValid
18 }
19
20 // ---------------------------------------------------------------------------
21
22 function isPlaylistRedundancyUrlValid (url: any) {
23   return url.type === 'Link' &&
24     (url.mediaType || url.mimeType) === 'application/x-mpegURL' &&
25     isActivityPubUrlValid(url.href)
26 }