diff options
Diffstat (limited to 'server/lib/activitypub/cache-file.ts')
-rw-r--r-- | server/lib/activitypub/cache-file.ts | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/server/lib/activitypub/cache-file.ts b/server/lib/activitypub/cache-file.ts index 7325ddcb6..87f8a4162 100644 --- a/server/lib/activitypub/cache-file.ts +++ b/server/lib/activitypub/cache-file.ts | |||
@@ -1,10 +1,9 @@ | |||
1 | import { CacheFileObject } from '../../../shared/index' | 1 | import { CacheFileObject } from '../../../shared/index' |
2 | import { VideoModel } from '../../models/video/video' | 2 | import { VideoModel } from '../../models/video/video' |
3 | import { ActorModel } from '../../models/activitypub/actor' | ||
4 | import { sequelizeTypescript } from '../../initializers' | 3 | import { sequelizeTypescript } from '../../initializers' |
5 | import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' | 4 | import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' |
6 | 5 | ||
7 | function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: VideoModel, byActor: ActorModel) { | 6 | function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }) { |
8 | const url = cacheFileObject.url | 7 | const url = cacheFileObject.url |
9 | 8 | ||
10 | const videoFile = video.VideoFiles.find(f => { | 9 | const videoFile = video.VideoFiles.find(f => { |
@@ -23,7 +22,7 @@ function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject | |||
23 | } | 22 | } |
24 | } | 23 | } |
25 | 24 | ||
26 | function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: ActorModel) { | 25 | function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }) { |
27 | return sequelizeTypescript.transaction(async t => { | 26 | return sequelizeTypescript.transaction(async t => { |
28 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) | 27 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) |
29 | 28 | ||
@@ -31,7 +30,11 @@ function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, b | |||
31 | }) | 30 | }) |
32 | } | 31 | } |
33 | 32 | ||
34 | function updateCacheFile (cacheFileObject: CacheFileObject, redundancyModel: VideoRedundancyModel, byActor: ActorModel) { | 33 | function updateCacheFile (cacheFileObject: CacheFileObject, redundancyModel: VideoRedundancyModel, byActor: { id?: number }) { |
34 | if (redundancyModel.actorId !== byActor.id) { | ||
35 | throw new Error('Cannot update redundancy ' + redundancyModel.url + ' of another actor.') | ||
36 | } | ||
37 | |||
35 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, redundancyModel.VideoFile.Video, byActor) | 38 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, redundancyModel.VideoFile.Video, byActor) |
36 | 39 | ||
37 | redundancyModel.set('expires', attributes.expiresOn) | 40 | redundancyModel.set('expires', attributes.expiresOn) |