]>
Commit | Line | Data |
---|---|---|
c48e82b5 C |
1 | import { CacheFileObject } from '../../../shared/index' |
2 | import { VideoModel } from '../../models/video/video' | |
3 | import { ActorModel } from '../../models/activitypub/actor' | |
4 | import { sequelizeTypescript } from '../../initializers' | |
5 | import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' | |
6 | ||
7 | function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: VideoModel, byActor: ActorModel) { | |
8 | const url = cacheFileObject.url | |
9 | ||
10 | const videoFile = video.VideoFiles.find(f => { | |
11 | return f.resolution === url.height && f.fps === url.fps | |
12 | }) | |
13 | ||
14 | if (!videoFile) throw new Error(`Cannot find video file ${url.height} ${url.fps} of video ${video.url}`) | |
15 | ||
16 | return { | |
17 | expiresOn: new Date(cacheFileObject.expires), | |
18 | url: cacheFileObject.id, | |
19 | fileUrl: cacheFileObject.url.href, | |
20 | strategy: null, | |
21 | videoFileId: videoFile.id, | |
22 | actorId: byActor.id | |
23 | } | |
24 | } | |
25 | ||
26 | function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: ActorModel) { | |
27 | return sequelizeTypescript.transaction(async t => { | |
28 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) | |
29 | ||
30 | return VideoRedundancyModel.create(attributes, { transaction: t }) | |
31 | }) | |
32 | } | |
33 | ||
34 | function updateCacheFile (cacheFileObject: CacheFileObject, redundancyModel: VideoRedundancyModel, byActor: ActorModel) { | |
35 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, redundancyModel.VideoFile.Video, byActor) | |
36 | ||
37 | redundancyModel.set('expires', attributes.expiresOn) | |
38 | redundancyModel.set('fileUrl', attributes.fileUrl) | |
39 | ||
40 | return redundancyModel.save() | |
41 | } | |
42 | ||
43 | export { | |
44 | createCacheFile, | |
45 | updateCacheFile, | |
46 | cacheFileActivityObjectToDBAttributes | |
47 | } |