]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/request/request-scheduler.ts
Update readme/doc with new client port for dev
[github/Chocobozzz/PeerTube.git] / server / lib / request / request-scheduler.ts
index 2006a6f0398f3b26954aaf507b1526c8c9ff91ff..69d840eeb140705547c14ab15b19e63fb56f011d 100644 (file)
@@ -1,4 +1,6 @@
-const db = require('../../initializers/database')
+import * as Sequelize from 'sequelize'
+
+import { database as db } from '../../initializers/database'
 import { BaseRequestScheduler } from './base-request-scheduler'
 import { logger } from '../../helpers'
 import {
@@ -6,6 +8,14 @@ import {
   REQUESTS_LIMIT_PER_POD
 } from '../../initializers'
 
+export type RequestSchedulerOptions = {
+  type: string
+  endpoint: string
+  data: Object
+  toIds: number[]
+  transaction: Sequelize.Transaction
+}
+
 class RequestScheduler extends BaseRequestScheduler {
   constructor () {
     super()
@@ -25,7 +35,7 @@ class RequestScheduler extends BaseRequestScheduler {
     return db.RequestToPod
   }
 
-  buildRequestObjects (requests) {
+  buildRequestObjects (requests: { [ toPodId: number ]: any }) {
     const requestsToMakeGrouped = {}
 
     Object.keys(requests).forEach(toPodId => {
@@ -51,21 +61,15 @@ class RequestScheduler extends BaseRequestScheduler {
     return requestsToMakeGrouped
   }
 
-  // { type, endpoint, data, toIds, transaction }
-  createRequest (options, callback) {
-    const type = options.type
-    const endpoint = options.endpoint
-    const data = options.data
-    const toIds = options.toIds
-    const transaction = options.transaction
-
-    const pods = []
+  createRequest ({ type, endpoint, data, toIds, transaction }: RequestSchedulerOptions, callback: (err: Error) => void) {
+    // TODO: check the setPods works
+    const podIds = []
 
     // If there are no destination pods abort
     if (toIds.length === 0) return callback(null)
 
     toIds.forEach(toPod => {
-      pods.push(db.Pod.build({ id: toPod }))
+      podIds.push(toPod)
     })
 
     const createQuery = {
@@ -76,14 +80,14 @@ class RequestScheduler extends BaseRequestScheduler {
       }
     }
 
-    const dbRequestOptions = {
+    const dbRequestOptions: Sequelize.CreateOptions = {
       transaction
     }
 
     return db.Request.create(createQuery, dbRequestOptions).asCallback((err, request) => {
       if (err) return callback(err)
 
-      return request.setPods(pods, dbRequestOptions).asCallback(callback)
+      return request.setPods(podIds, dbRequestOptions).asCallback(callback)
     })
   }