Server: assert remoteId and host pair is unique
authorChocobozzz <florian.bigard@gmail.com>
Fri, 27 Jan 2017 11:05:19 +0000 (12:05 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Fri, 27 Jan 2017 11:14:53 +0000 (12:14 +0100)
server/controllers/api/remote/videos.js
server/tests/api/check-params/remotes.js

index 83d9b98bf69d40e3238df1d396a569c30e14ec7b..f8b4949cdc131b3b91a6c54c56ca74c83e7f14a1 100644 (file)
@@ -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
index c1ab9fb2bcd1f7f6f2845b67f2a29b3eb2d95015..f6a49d6e209b05bc6763c2e603c4d713a5103840 100644 (file)
@@ -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 () {