diff options
Diffstat (limited to 'server/lib/activitypub/cache-file.ts')
-rw-r--r-- | server/lib/activitypub/cache-file.ts | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/server/lib/activitypub/cache-file.ts b/server/lib/activitypub/cache-file.ts index 87f8a4162..5286d8e6d 100644 --- a/server/lib/activitypub/cache-file.ts +++ b/server/lib/activitypub/cache-file.ts | |||
@@ -1,7 +1,7 @@ | |||
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 { sequelizeTypescript } from '../../initializers' | ||
4 | import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' | 3 | import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' |
4 | import { Transaction } from 'sequelize' | ||
5 | 5 | ||
6 | function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }) { | 6 | function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }) { |
7 | const url = cacheFileObject.url | 7 | const url = cacheFileObject.url |
@@ -22,25 +22,29 @@ function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject | |||
22 | } | 22 | } |
23 | } | 23 | } |
24 | 24 | ||
25 | function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }) { | 25 | function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }, t: Transaction) { |
26 | return sequelizeTypescript.transaction(async t => { | 26 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) |
27 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) | ||
28 | 27 | ||
29 | return VideoRedundancyModel.create(attributes, { transaction: t }) | 28 | return VideoRedundancyModel.create(attributes, { transaction: t }) |
30 | }) | ||
31 | } | 29 | } |
32 | 30 | ||
33 | function updateCacheFile (cacheFileObject: CacheFileObject, redundancyModel: VideoRedundancyModel, byActor: { id?: number }) { | 31 | function updateCacheFile ( |
32 | cacheFileObject: CacheFileObject, | ||
33 | redundancyModel: VideoRedundancyModel, | ||
34 | video: VideoModel, | ||
35 | byActor: { id?: number }, | ||
36 | t: Transaction | ||
37 | ) { | ||
34 | if (redundancyModel.actorId !== byActor.id) { | 38 | if (redundancyModel.actorId !== byActor.id) { |
35 | throw new Error('Cannot update redundancy ' + redundancyModel.url + ' of another actor.') | 39 | throw new Error('Cannot update redundancy ' + redundancyModel.url + ' of another actor.') |
36 | } | 40 | } |
37 | 41 | ||
38 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, redundancyModel.VideoFile.Video, byActor) | 42 | const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor) |
39 | 43 | ||
40 | redundancyModel.set('expires', attributes.expiresOn) | 44 | redundancyModel.set('expires', attributes.expiresOn) |
41 | redundancyModel.set('fileUrl', attributes.fileUrl) | 45 | redundancyModel.set('fileUrl', attributes.fileUrl) |
42 | 46 | ||
43 | return redundancyModel.save() | 47 | return redundancyModel.save({ transaction: t }) |
44 | } | 48 | } |
45 | 49 | ||
46 | export { | 50 | export { |