+import * as Sequelize from 'sequelize'
+
import { database as db } from '../../initializers/database'
-import { BaseRequestScheduler } from './base-request-scheduler'
+import { AbstractRequestScheduler } from './abstract-request-scheduler'
import { logger } from '../../helpers'
import {
REQUESTS_LIMIT_PODS,
REQUESTS_LIMIT_PER_POD
} from '../../initializers'
-class RequestScheduler extends BaseRequestScheduler {
+export type RequestSchedulerOptions = {
+ type: string
+ endpoint: string
+ data: Object
+ toIds: number[]
+ transaction: Sequelize.Transaction
+}
+
+class RequestScheduler extends AbstractRequestScheduler {
constructor () {
super()
return db.RequestToPod
}
- buildRequestObjects (requests) {
+ buildRequestObjects (requests: { [ toPodId: number ]: any }) {
const requestsToMakeGrouped = {}
Object.keys(requests).forEach(toPodId => {
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
-
+ createRequest ({ type, endpoint, data, toIds, transaction }: RequestSchedulerOptions, callback: (err: Error) => void) {
// TODO: check the setPods works
const podIds = []
}
}
- const dbRequestOptions = {
+ const dbRequestOptions: Sequelize.CreateOptions = {
transaction
}