From 62f4ef413c8ef4269e7cdc21dea0e99ab2191201 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 17 Jan 2017 20:50:02 +0100 Subject: Server: remote request process refractoring --- server/controllers/api/remote/videos.js | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'server/controllers/api/remote') diff --git a/server/controllers/api/remote/videos.js b/server/controllers/api/remote/videos.js index bfe61a35c..83d9b98bf 100644 --- a/server/controllers/api/remote/videos.js +++ b/server/controllers/api/remote/videos.js @@ -5,6 +5,7 @@ const express = require('express') const waterfall = require('async/waterfall') const db = require('../../../initializers/database') +const constants = require('../../../initializers/constants') const middlewares = require('../../../middlewares') const secureMiddleware = middlewares.secure const videosValidators = middlewares.validators.remote.videos @@ -12,6 +13,15 @@ const signatureValidators = middlewares.validators.remote.signature const logger = require('../../../helpers/logger') 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() router.post('/', @@ -36,26 +46,14 @@ function remoteVideos (req, res, next) { eachSeries(requests, function (request, callbackEach) { const data = request.data - switch (request.type) { - case 'add': - addRemoteVideoRetryWrapper(data, fromPod, callbackEach) - break - - 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) + // Get the function we need to call in order to process the request + const fun = functionsHash[request.type] + if (fun === undefined) { + logger.error('Unkown remote request type %s.', request.type) + return callbackEach(null) } + + fun.call(this, data, fromPod, callbackEach) }, function (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) { - const options = { transaction: t } + const options = { + transaction: t + } video.setTags(tagInstances, options).asCallback(function (err) { return callback(err, t) -- cgit v1.2.3