|  | @@ -0,0 +1,46 @@
 | 
	
		
			
				|  |  | +import async from "async";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * Migration 15
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Migration for setting user name to username if not set
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @param {object} MigrationModule - the MigrationModule
 | 
	
		
			
				|  |  | + * @returns {Promise} - returns promise
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export default async function migrate(MigrationModule) {
 | 
	
		
			
				|  |  | +	const userModel = await MigrationModule.runJob("GET_MODEL", { modelName: "user" }, this);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	return new Promise((resolve, reject) => {
 | 
	
		
			
				|  |  | +		async.waterfall(
 | 
	
		
			
				|  |  | +			[
 | 
	
		
			
				|  |  | +				next => {
 | 
	
		
			
				|  |  | +					this.log("INFO", `Migration 15. Finding users with document version 3.`);
 | 
	
		
			
				|  |  | +					userModel.find({ documentVersion: 3, name: { $in: [null, ""] } }, (err, users) => {
 | 
	
		
			
				|  |  | +						if (err) next(err);
 | 
	
		
			
				|  |  | +						else {
 | 
	
		
			
				|  |  | +							async.eachLimit(
 | 
	
		
			
				|  |  | +								users.map(user => user._doc),
 | 
	
		
			
				|  |  | +								1,
 | 
	
		
			
				|  |  | +								(user, next) => {
 | 
	
		
			
				|  |  | +									userModel.updateOne({ _id: user._id }, { $set: { name: user.username } }, next);
 | 
	
		
			
				|  |  | +								},
 | 
	
		
			
				|  |  | +								err => {
 | 
	
		
			
				|  |  | +									this.log("INFO", `Migration 15. Users found: ${users.length}.`);
 | 
	
		
			
				|  |  | +									next(err);
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +							);
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +					});
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			],
 | 
	
		
			
				|  |  | +			err => {
 | 
	
		
			
				|  |  | +				if (err) {
 | 
	
		
			
				|  |  | +					reject(new Error(err));
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					resolve();
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		);
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +}
 |