]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Use async waterfall for better readability in friends lib
authorChocobozzz <florian.bigard@gmail.com>
Sun, 15 May 2016 08:42:17 +0000 (10:42 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Sun, 15 May 2016 08:42:17 +0000 (10:42 +0200)
server/lib/friends.js

index e052574a545ca432b887adf321aebdf4e866becf..e986fa00623b167b021d4e236bb08b4501c8edf6 100644 (file)
@@ -80,43 +80,58 @@ function quitFriends (callback) {
   // Flush pool requests
   requestsScheduler.forceSend()
 
   // Flush pool requests
   requestsScheduler.forceSend()
 
-  Pods.list(function (err, pods) {
-    if (err) return callback(err)
-
-    const request = {
-      method: 'POST',
-      path: '/api/' + constants.API_VERSION + '/pods/remove',
-      sign: true,
-      encrypt: true,
-      data: {
-        url: 'me' // Fake data
+  async.waterfall([
+    function getPodsList (callbackAsync) {
+      return Pods.list(callbackAsync)
+    },
+
+    function announceIQuitMyFriends (pods, callbackAsync) {
+      const request = {
+        method: 'POST',
+        path: '/api/' + constants.API_VERSION + '/pods/remove',
+        sign: true,
+        encrypt: true,
+        data: {
+          url: 'me' // Fake data
+        }
       }
       }
-    }
 
 
-    // Announce we quit them
-    requests.makeMultipleRetryRequest(request, pods, function () {
-      Pods.removeAll(function (err) {
-        requestsScheduler.activate()
+      // Announce we quit them
+      requests.makeMultipleRetryRequest(request, pods, function (err) {
+        return callbackAsync(err)
+      })
+    },
 
 
-        if (err) return callback(err)
+    function removePodsFromDB (callbackAsync) {
+      Pods.removeAll(function (err) {
+        return callbackAsync(err)
+      })
+    },
 
 
-        logger.info('Broke friends, so sad :(')
+    function listRemoteVideos (callbackAsync) {
+      logger.info('Broke friends, so sad :(')
 
 
-        Videos.listFromRemotes(function (err, videosList) {
-          if (err) return callback(err)
+      Videos.listFromRemotes(callbackAsync)
+    },
 
 
-          videos.removeRemoteVideos(videosList, function (err) {
-            if (err) {
-              logger.error('Cannot remove remote videos.', { error: err })
-              return callback(err)
-            }
+    function removeTheRemoteVideos (videosList, callbackAsync) {
+      videos.removeRemoteVideos(videosList, function (err) {
+        if (err) {
+          logger.error('Cannot remove remote videos.', { error: err })
+          return callbackAsync(err)
+        }
 
 
-            logger.info('Removed all remote videos.')
-            callback(null)
-          })
-        })
+        return callbackAsync(null)
       })
       })
-    })
+    }
+  ], function (err) {
+    // Don't forget to re activate the scheduler, even if there was an error
+    requestsScheduler.activate()
+
+    if (err) return callback(err)
+
+    logger.info('Removed all remote videos.')
+    return callback(null)
   })
 }
 
   })
 }
 
@@ -159,9 +174,7 @@ function computeWinningPods (urls, podsScore) {
   Object.keys(podsScore).forEach(function (pod) {
     if (podsScore[pod] > baseScore) podsList.push({ url: pod })
   })
   Object.keys(podsScore).forEach(function (pod) {
     if (podsScore[pod] > baseScore) podsList.push({ url: pod })
   })
-  console.log(urls)
-  console.log(podsScore)
-  console.log(podsList)
+
   return podsList
 }
 
   return podsList
 }
 
@@ -199,6 +212,7 @@ function makeRequestsToWinningPods (cert, podsList, callback) {
 
       podsList,
 
 
       podsList,
 
+      // Callback called after each request
       function eachRequest (err, response, body, url, pod, callbackEachRequest) {
         // We add the pod if it responded correctly with its public certificate
         if (!err && response.statusCode === 200) {
       function eachRequest (err, response, body, url, pod, callbackEachRequest) {
         // We add the pod if it responded correctly with its public certificate
         if (!err && response.statusCode === 200) {
@@ -224,6 +238,7 @@ function makeRequestsToWinningPods (cert, podsList, callback) {
         }
       },
 
         }
       },
 
+      // Final callback, we've ended all the requests
       function endRequests (err) {
         // Now we made new friends, we can re activate the pool of requests
         requestsScheduler.activate()
       function endRequests (err) {
         // Now we made new friends, we can re activate the pool of requests
         requestsScheduler.activate()