Server: remote request process refractoring
This commit is contained in:
parent
4145c1c689
commit
62f4ef413c
|
@ -5,6 +5,7 @@ const express = require('express')
|
||||||
const waterfall = require('async/waterfall')
|
const waterfall = require('async/waterfall')
|
||||||
|
|
||||||
const db = require('../../../initializers/database')
|
const db = require('../../../initializers/database')
|
||||||
|
const constants = require('../../../initializers/constants')
|
||||||
const middlewares = require('../../../middlewares')
|
const middlewares = require('../../../middlewares')
|
||||||
const secureMiddleware = middlewares.secure
|
const secureMiddleware = middlewares.secure
|
||||||
const videosValidators = middlewares.validators.remote.videos
|
const videosValidators = middlewares.validators.remote.videos
|
||||||
|
@ -12,6 +13,15 @@ const signatureValidators = middlewares.validators.remote.signature
|
||||||
const logger = require('../../../helpers/logger')
|
const logger = require('../../../helpers/logger')
|
||||||
const databaseUtils = require('../../../helpers/database-utils')
|
const databaseUtils = require('../../../helpers/database-utils')
|
||||||
|
|
||||||
|
const ENDPOINT_ACTIONS = constants.REQUEST_ENDPOINT_ACTIONS[constants.REQUEST_ENDPOINTS.VIDEOS]
|
||||||
|
|
||||||
|
// Functions to call when processing a remote request
|
||||||
|
const functionsHash = {}
|
||||||
|
functionsHash[ENDPOINT_ACTIONS.ADD] = addRemoteVideoRetryWrapper
|
||||||
|
functionsHash[ENDPOINT_ACTIONS.UPDATE] = updateRemoteVideoRetryWrapper
|
||||||
|
functionsHash[ENDPOINT_ACTIONS.REMOVE] = removeRemoteVideo
|
||||||
|
functionsHash[ENDPOINT_ACTIONS.REPORT_ABUSE] = reportAbuseRemoteVideo
|
||||||
|
|
||||||
const router = express.Router()
|
const router = express.Router()
|
||||||
|
|
||||||
router.post('/',
|
router.post('/',
|
||||||
|
@ -36,26 +46,14 @@ function remoteVideos (req, res, next) {
|
||||||
eachSeries(requests, function (request, callbackEach) {
|
eachSeries(requests, function (request, callbackEach) {
|
||||||
const data = request.data
|
const data = request.data
|
||||||
|
|
||||||
switch (request.type) {
|
// Get the function we need to call in order to process the request
|
||||||
case 'add':
|
const fun = functionsHash[request.type]
|
||||||
addRemoteVideoRetryWrapper(data, fromPod, callbackEach)
|
if (fun === undefined) {
|
||||||
break
|
logger.error('Unkown remote request type %s.', request.type)
|
||||||
|
return callbackEach(null)
|
||||||
case 'update':
|
|
||||||
updateRemoteVideoRetryWrapper(data, fromPod, callbackEach)
|
|
||||||
break
|
|
||||||
|
|
||||||
case 'remove':
|
|
||||||
removeRemoteVideo(data, fromPod, callbackEach)
|
|
||||||
break
|
|
||||||
|
|
||||||
case 'report-abuse':
|
|
||||||
reportAbuseRemoteVideo(data, fromPod, callbackEach)
|
|
||||||
break
|
|
||||||
|
|
||||||
default:
|
|
||||||
logger.error('Unkown remote request type %s.', request.type)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun.call(this, data, fromPod, callbackEach)
|
||||||
}, function (err) {
|
}, function (err) {
|
||||||
if (err) logger.error('Error managing remote videos.', { error: err })
|
if (err) logger.error('Error managing remote videos.', { error: err })
|
||||||
})
|
})
|
||||||
|
@ -141,7 +139,9 @@ function addRemoteVideo (videoToCreateData, fromPod, finalCallback) {
|
||||||
},
|
},
|
||||||
|
|
||||||
function associateTagsToVideo (t, tagInstances, video, callback) {
|
function associateTagsToVideo (t, tagInstances, video, callback) {
|
||||||
const options = { transaction: t }
|
const options = {
|
||||||
|
transaction: t
|
||||||
|
}
|
||||||
|
|
||||||
video.setTags(tagInstances, options).asCallback(function (err) {
|
video.setTags(tagInstances, options).asCallback(function (err) {
|
||||||
return callback(err, t)
|
return callback(err, t)
|
||||||
|
|
|
@ -119,6 +119,13 @@ const RETRY_REQUESTS = 5
|
||||||
const REQUEST_ENDPOINTS = {
|
const REQUEST_ENDPOINTS = {
|
||||||
VIDEOS: 'videos'
|
VIDEOS: 'videos'
|
||||||
}
|
}
|
||||||
|
const REQUEST_ENDPOINT_ACTIONS = {}
|
||||||
|
REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS] = {
|
||||||
|
ADD: 'add',
|
||||||
|
UPDATE: 'update',
|
||||||
|
REMOVE: 'remove',
|
||||||
|
REPORT_ABUSE: 'report-abuse'
|
||||||
|
}
|
||||||
|
|
||||||
const REMOTE_SCHEME = {
|
const REMOTE_SCHEME = {
|
||||||
HTTP: 'https',
|
HTTP: 'https',
|
||||||
|
@ -184,6 +191,7 @@ module.exports = {
|
||||||
PREVIEWS_SIZE,
|
PREVIEWS_SIZE,
|
||||||
REMOTE_SCHEME,
|
REMOTE_SCHEME,
|
||||||
REQUEST_ENDPOINTS,
|
REQUEST_ENDPOINTS,
|
||||||
|
REQUEST_ENDPOINT_ACTIONS,
|
||||||
REQUESTS_IN_PARALLEL,
|
REQUESTS_IN_PARALLEL,
|
||||||
REQUESTS_INTERVAL,
|
REQUESTS_INTERVAL,
|
||||||
REQUESTS_LIMIT_PODS,
|
REQUESTS_LIMIT_PODS,
|
||||||
|
|
Loading…
Reference in New Issue