]>
Commit | Line | Data |
---|---|---|
2550fab3 C |
1 | /* |
2 | Use remote id as identifier | |
3 | */ | |
4 | ||
5 | const each = require('async/each') | |
6 | const map = require('lodash/map') | |
7 | const mongoose = require('mongoose') | |
8 | const readline = require('readline') | |
9 | ||
10 | const rl = readline.createInterface({ | |
11 | input: process.stdin, | |
12 | output: process.stdout | |
13 | }) | |
14 | ||
15 | const logger = require('../../helpers/logger') | |
16 | const friends = require('../../lib/friends') | |
17 | ||
18 | const Pod = mongoose.model('Pod') | |
19 | const Video = mongoose.model('Video') | |
20 | ||
21 | exports.up = function (callback) { | |
22 | Pod.find({}).lean().exec(function (err, pods) { | |
23 | if (err) return callback(err) | |
24 | ||
25 | // We need to quit friends first | |
26 | if (pods.length === 0) { | |
27 | return setVideosRemoteId(callback) | |
28 | } | |
29 | ||
30 | const timeout = setTimeout(function () { | |
31 | throw new Error('You need to enter a value!') | |
32 | }, 10000) | |
33 | ||
34 | rl.question('I am sorry but I need to quit friends for upgrading. Do you want to continue? (yes/*)', function (answer) { | |
35 | if (answer !== 'yes') throw new Error('I cannot continue.') | |
36 | ||
37 | clearTimeout(timeout) | |
38 | rl.close() | |
39 | ||
40 | const urls = map(pods, 'url') | |
41 | logger.info('Saying goodbye to: ' + urls.join(', ')) | |
42 | ||
43 | friends.quitFriends(function () { | |
44 | setVideosRemoteId(callback) | |
45 | }) | |
46 | }) | |
47 | }) | |
48 | } | |
49 | ||
50 | exports.down = function (callback) { | |
51 | throw new Error('Not implemented.') | |
52 | } | |
53 | ||
54 | function setVideosRemoteId (callback) { | |
55 | Video.find({}, function (err, videos) { | |
56 | if (err) return callback(err) | |
57 | ||
58 | each(videos, function (video, callbackEach) { | |
59 | video.remoteId = null | |
60 | video.save(callbackEach) | |
61 | }, callback) | |
62 | }) | |
63 | } |