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