Fix migration script
[oweals/peertube.git] / server / initializers / migrations / 0030-video-magnet.js
1 /*
2   Change video magnet structures
3 */
4
5 const each = require('async/each')
6 const magnet = require('magnet-uri')
7 const mongoose = require('mongoose')
8
9 const Video = mongoose.model('Video')
10
11 exports.up = function (callback) {
12   // Use of lean because the new Video scheme does not have magnetUri field
13   Video.find({ }).lean().exec(function (err, videos) {
14     if (err) throw err
15
16     each(videos, function (video, callbackEach) {
17       const parsed = magnet.decode(video.magnetUri)
18       const infoHash = parsed.infoHash
19
20       Video.load(video._id, function (err, videoObj) {
21         if (err) return callbackEach(err)
22
23         videoObj.magnet.infoHash = infoHash
24         videoObj.save(callbackEach)
25       })
26     }, callback)
27   })
28 }
29
30 exports.down = function (callback) {
31   throw new Error('Not implemented.')
32 }