]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/database-utils.ts
Detect posting request in our own inbox
[github/Chocobozzz/PeerTube.git] / server / helpers / database-utils.ts
index fb8ad22b06436849355a5009e200f8e34c9bb5bd..b4adaf9cc2179bd4696bb4d6eef952173f39fe5e 100644 (file)
@@ -1,5 +1,6 @@
 import * as retry from 'async/retry'
 import * as Bluebird from 'bluebird'
+import { Model } from 'sequelize-typescript'
 import { logger } from './logger'
 
 type RetryTransactionWrapperOptions = { errorMessage: string, arguments?: any[] }
@@ -15,6 +16,7 @@ function retryTransactionWrapper <T> (
         .catch(err => callback(err))
   })
   .catch(err => {
+    console.error(err)
     logger.error(options.errorMessage, err)
     throw err
   })
@@ -34,9 +36,18 @@ function transactionRetryer <T> (func: (err: any, data: T) => any) {
   })
 }
 
+function updateInstanceWithAnother <T> (instanceToUpdate: Model<T>, baseInstance: Model<T>) {
+  const obj = baseInstance.toJSON()
+
+  for (const key of Object.keys(obj)) {
+    instanceToUpdate.set(key, obj[key])
+  }
+}
+
 // ---------------------------------------------------------------------------
 
 export {
   retryTransactionWrapper,
-  transactionRetryer
+  transactionRetryer,
+  updateInstanceWithAnother
 }