-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 {
REQUESTS_VIDEO_EVENT_LIMIT_PODS,
REQUESTS_VIDEO_EVENT_LIMIT_PER_POD,
REQUEST_VIDEO_EVENT_ENDPOINT
} from '../../initializers'
-class RequestVideoEventScheduler extends BaseRequestScheduler {
+export type RequestVideoEventSchedulerOptions = {
+ type: string
+ videoId: string
+ count?: number
+ transaction?: Sequelize.Transaction
+}
+
+class RequestVideoEventScheduler extends AbstractRequestScheduler {
constructor () {
super()
return db.RequestVideoEvent
}
- buildRequestObjects (eventsToProcess) {
+ buildRequestObjects (eventsToProcess: { [ toPodId: number ]: any }[]) {
const requestsToMakeGrouped = {}
/* Example:
return requestsToMakeGrouped
}
- // { type, videoId, count?, transaction? }
- createRequest (options, callback) {
- const type = options.type
- const videoId = options.videoId
- const transaction = options.transaction
- let count = options.count
-
+ createRequest ({ type, videoId, count, transaction }: RequestVideoEventSchedulerOptions, callback: (err: Error) => void) {
if (count === undefined) count = 1
- const dbRequestOptions: { transaction?: any } = {}
+ const dbRequestOptions: Sequelize.CreateOptions = {}
if (transaction) dbRequestOptions.transaction = transaction
const createQuery = {