]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Upsert cache file on create activity
authorChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 12:39:35 +0000 (14:39 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 12:40:03 +0000 (14:40 +0200)
server/lib/activitypub/cache-file.ts
server/lib/activitypub/process/process-create.ts
server/lib/activitypub/process/process-update.ts

index 5286d8e6ddc9294900c1402f8b63730f5ecd3f6b..f6f068b456828e37455167d0d881f0b09e31263d 100644 (file)
@@ -22,6 +22,16 @@ function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject
   }
 }
 
+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)
 
@@ -48,6 +58,7 @@ function updateCacheFile (
 }
 
 export {
+  createOrUpdateCacheFile,
   createCacheFile,
   updateCacheFile,
   cacheFileActivityObjectToDBAttributes
index c2160872f34bf2d12d6c6081dfb4d893671a3955..cefe89db0eb75dc35f0d984cb46277beeb7aeff1 100644 (file)
@@ -11,7 +11,7 @@ import { addVideoComment, resolveThread } from '../video-comments'
 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
@@ -105,7 +105,7 @@ async function processCacheFile (byActor: ActorModel, activity: ActivityCreate)
   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()) {
index e092a67293d5b177a88a04929c08558a4e206525..bd4013555dc12f55457277d64764b2905fd57add 100644 (file)
@@ -10,8 +10,7 @@ import { fetchAvatarIfExists, updateActorAvatarInstance, updateActorInstance } f
 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) {
@@ -77,13 +76,7 @@ async function processUpdateCacheFile (byActor: ActorModel, activity: ActivityUp
   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()) {