From 6666aad4599a78f98f39409ec0d45391da7bd2d0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 5 Jul 2016 21:36:01 +0200 Subject: Fix requests ordering between pods --- server/controllers/api/v1/remote.js | 10 ++++++++++ server/models/request.js | 2 +- server/tests/api/utils.js | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/server/controllers/api/v1/remote.js b/server/controllers/api/v1/remote.js index 7af9b7e84..9c2ca86e0 100644 --- a/server/controllers/api/v1/remote.js +++ b/server/controllers/api/v1/remote.js @@ -39,6 +39,8 @@ function remoteVideos (req, res, next) { addRemoteVideo(videoData, callbackEach) } else if (request.type === 'remove') { removeRemoteVideo(videoData, fromUrl, callbackEach) + } else { + logger.error('Unkown remote request type %s.', request.type) } }, function (err) { if (err) logger.error('Error managing remote videos.', { error: err }) @@ -49,6 +51,8 @@ function remoteVideos (req, res, next) { } function addRemoteVideo (videoToCreateData, callback) { + logger.debug('Adding remote video %s.', videoToCreateData.magnetUri) + // Mongoose pre hook will automatically create the thumbnail on disk videoToCreateData.thumbnail = videoToCreateData.thumbnailBase64 @@ -64,7 +68,13 @@ function removeRemoteVideo (videoToRemoveData, fromUrl, callback) { return callback(err) } + if (videosList.length === 0) { + logger.error('No remote video was found for this pod.', { magnetUri: videoToRemoveData.magnetUri, podUrl: fromUrl }) + } + async.each(videosList, function (video, callbackEach) { + logger.debug('Removing remote video %s.', video.magnetUri) + video.remove(callbackEach) }, callback) }) diff --git a/server/models/request.js b/server/models/request.js index db6ad5409..7fdf5bd31 100644 --- a/server/models/request.js +++ b/server/models/request.js @@ -270,7 +270,7 @@ function updatePodsScore (goodPods, badPods) { } function list (callback) { - this.find({ }, { _id: 1, request: 1, to: 1 }, callback) + this.find({ }, { _id: 1, request: 1, to: 1 }).sort({ _id: 1 }).exec(callback) } function removeAll (callback) { diff --git a/server/tests/api/utils.js b/server/tests/api/utils.js index e0068eada..7c8698a0a 100644 --- a/server/tests/api/utils.js +++ b/server/tests/api/utils.js @@ -10,6 +10,7 @@ const request = require('supertest') const testUtils = { dateIsValid: dateIsValid, flushTests: flushTests, + getAllVideosListBy: getAllVideosListBy, getFriendsList: getFriendsList, getVideo: getVideo, getVideosList: getVideosList, @@ -45,6 +46,20 @@ function flushTests (callback) { exec('npm run clean:server:test', callback) } +function getAllVideosListBy (url, end) { + const path = '/api/v1/videos' + + request(url) + .get(path) + .query({ sort: 'createdDate' }) + .query({ start: 0 }) + .query({ count: 10000 }) + .set('Accept', 'application/json') + .expect(200) + .expect('Content-Type', /json/) + .end(end) +} + function getFriendsList (url, end) { const path = '/api/v1/pods/' -- cgit v1.2.3