From cddadde81f91219204cec1f4057a191c02a70894 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 27 Jan 2017 12:05:19 +0100 Subject: [PATCH] Server: assert remoteId and host pair is unique --- server/controllers/api/remote/videos.js | 10 ++++++++++ server/tests/api/check-params/remotes.js | 2 ++ 2 files changed, 12 insertions(+) diff --git a/server/controllers/api/remote/videos.js b/server/controllers/api/remote/videos.js index 83d9b98bf..f8b4949cd 100644 --- a/server/controllers/api/remote/videos.js +++ b/server/controllers/api/remote/videos.js @@ -79,6 +79,16 @@ function addRemoteVideo (videoToCreateData, fromPod, finalCallback) { databaseUtils.startSerializableTransaction, + function assertRemoteIdAndHostUnique (t, callback) { + db.Video.loadByHostAndRemoteId(fromPod.host, videoToCreateData.remoteId, function (err, video) { + if (err) return callback(err) + + if (video) return callback(new Error('RemoteId and host pair is not unique.')) + + return callback(null, t) + }) + }, + function findOrCreateAuthor (t, callback) { const name = videoToCreateData.author const podId = fromPod.id diff --git a/server/tests/api/check-params/remotes.js b/server/tests/api/check-params/remotes.js index c1ab9fb2b..f6a49d6e2 100644 --- a/server/tests/api/check-params/remotes.js +++ b/server/tests/api/check-params/remotes.js @@ -41,6 +41,8 @@ describe('Test remote videos API validators', function () { describe('When adding a video', function () { it('Should check when adding a video') + + it('Should not add an existing remoteId and host pair') }) describe('When removing a video', function () { -- 2.25.1