-const db = require('../../initializers/database')
-import { BaseRequestScheduler } from './base-request-scheduler'
+import * as Sequelize from 'sequelize'
+
+import { database as db } from '../../initializers/database'
+import { AbstractRequestScheduler } from './abstract-request-scheduler'
import { logger } from '../../helpers'
import {
REQUESTS_VIDEO_QADU_LIMIT_PODS,
REQUEST_VIDEO_QADU_TYPES
} from '../../initializers'
-class RequestVideoQaduScheduler extends BaseRequestScheduler {
+export type RequestVideoQaduSchedulerOptions = {
+ type: string
+ videoId: string
+ transaction?: Sequelize.Transaction
+}
+
+class RequestVideoQaduScheduler extends AbstractRequestScheduler {
constructor () {
super()
return db.RequestVideoQadu
}
- buildRequestObjects (requests) {
+ buildRequestObjects (requests: { [ toPodId: number ]: any }[]) {
const requestsToMakeGrouped = {}
Object.keys(requests).forEach(toPodId => {
return requestsToMakeGrouped
}
- // { type, videoId, transaction? }
- createRequest (options, callback) {
- const type = options.type
- const videoId = options.videoId
- const transaction = options.transaction
-
- const dbRequestOptions: { transaction?: any } = {}
+ createRequest ({ type, videoId, transaction }: RequestVideoQaduSchedulerOptions, callback: (err: Error) => void) {
+ const dbRequestOptions: Sequelize.BulkCreateOptions = {}
if (transaction) dbRequestOptions.transaction = transaction
// Send the update to all our friends
- db.Pod.listAllIds(options.transaction, function (err, podIds) {
+ db.Pod.listAllIds(transaction, function (err, podIds) {
if (err) return callback(err)
const queries = []