X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Frequest%2Frequest-video-qadu-scheduler.ts;h=5ec7de9c206e1291aa2a6bb4bd9f13d0473f3991;hb=7a214f746bf420defbf17fa218d90d6233551bf8;hp=d818227238a8b638980a0dd847bde7c81af458a4;hpb=65fcc3119c334b75dd13bcfdebf186afdc580a8f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/request/request-video-qadu-scheduler.ts b/server/lib/request/request-video-qadu-scheduler.ts index d81822723..5ec7de9c2 100644 --- a/server/lib/request/request-video-qadu-scheduler.ts +++ b/server/lib/request/request-video-qadu-scheduler.ts @@ -1,5 +1,7 @@ -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, @@ -7,8 +9,16 @@ import { REQUEST_VIDEO_QADU_ENDPOINT, REQUEST_VIDEO_QADU_TYPES } from '../../initializers' +import { RequestsVideoQaduGrouped } from '../../models' +import { RequestVideoQaduType } from '../../../shared' + +export type RequestVideoQaduSchedulerOptions = { + type: RequestVideoQaduType + videoId: string + transaction?: Sequelize.Transaction +} -class RequestVideoQaduScheduler extends BaseRequestScheduler { +class RequestVideoQaduScheduler extends AbstractRequestScheduler { constructor () { super() @@ -27,7 +37,7 @@ class RequestVideoQaduScheduler extends BaseRequestScheduler { return db.RequestVideoQadu } - buildRequestObjects (requests) { + buildRequestObjects (requests: RequestsVideoQaduGrouped) { const requestsToMakeGrouped = {} Object.keys(requests).forEach(toPodId => { @@ -96,25 +106,18 @@ class RequestVideoQaduScheduler extends BaseRequestScheduler { 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) { + const dbRequestOptions: Sequelize.BulkCreateOptions = {} if (transaction) dbRequestOptions.transaction = transaction // Send the update to all our friends - db.Pod.listAllIds(options.transaction, function (err, podIds) { - if (err) return callback(err) - + return db.Pod.listAllIds(transaction).then(podIds => { const queries = [] podIds.forEach(podId => { queries.push({ type, videoId, podId }) }) - return db.RequestVideoQadu.bulkCreate(queries, dbRequestOptions).asCallback(callback) + return db.RequestVideoQadu.bulkCreate(queries, dbRequestOptions) }) } }