}
}
+async function createOrUpdateCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }, t: Transaction) {
+ const redundancyModel = await VideoRedundancyModel.loadByUrl(cacheFileObject.id, t)
+
+ if (!redundancyModel) {
+ await createCacheFile(cacheFileObject, video, byActor, t)
+ } else {
+ await updateCacheFile(cacheFileObject, redundancyModel, video, byActor, t)
+ }
+}
+
function createCacheFile (cacheFileObject: CacheFileObject, video: VideoModel, byActor: { id?: number }, t: Transaction) {
const attributes = cacheFileActivityObjectToDBAttributes(cacheFileObject, video, byActor)
}
export {
+ createOrUpdateCacheFile,
createCacheFile,
updateCacheFile,
cacheFileActivityObjectToDBAttributes
import { getOrCreateVideoAndAccountAndChannel } from '../videos'
import { forwardVideoRelatedActivity } from '../send/utils'
import { Redis } from '../../redis'
-import { createCacheFile } from '../cache-file'
+import { createOrUpdateCacheFile } from '../cache-file'
async function processCreateActivity (activity: ActivityCreate, byActor: ActorModel) {
const activityObject = activity.object
const { video } = await getOrCreateVideoAndAccountAndChannel({ videoObject: cacheFile.object })
await sequelizeTypescript.transaction(async t => {
- return createCacheFile(cacheFile, video, byActor, t)
+ return createOrUpdateCacheFile(cacheFile, video, byActor, t)
})
if (video.isOwned()) {
import { getOrCreateVideoAndAccountAndChannel, getOrCreateVideoChannelFromVideoObject, updateVideoFromAP } from '../videos'
import { sanitizeAndCheckVideoTorrentObject } from '../../../helpers/custom-validators/activitypub/videos'
import { isCacheFileObjectValid } from '../../../helpers/custom-validators/activitypub/cache-file'
-import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy'
-import { createCacheFile, updateCacheFile } from '../cache-file'
+import { createOrUpdateCacheFile } from '../cache-file'
import { forwardVideoRelatedActivity } from '../send/utils'
async function processUpdateActivity (activity: ActivityUpdate, byActor: ActorModel) {
const { video } = await getOrCreateVideoAndAccountAndChannel({ videoObject: cacheFileObject.object })
await sequelizeTypescript.transaction(async t => {
- const redundancyModel = await VideoRedundancyModel.loadByUrl(cacheFileObject.id, t)
-
- if (!redundancyModel) {
- await createCacheFile(cacheFileObject, video, byActor, t)
- } else {
- await updateCacheFile(cacheFileObject, redundancyModel, video, byActor, t)
- }
+ await createOrUpdateCacheFile(cacheFileObject, video, byActor, t)
})
if (video.isOwned()) {