From f85804f270552c75128746e18a6afa81c8c0a46b Mon Sep 17 00:00:00 2001 From: Michael Q Larson Date: Sun, 12 Apr 2015 02:06:38 -0400 Subject: [PATCH] start writing user migration for challenge completion --- models/User.js | 1 + seed_data/userMigration.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 seed_data/userMigration.js diff --git a/models/User.js b/models/User.js index 36e9c87f78..7a1e20826b 100644 --- a/models/User.js +++ b/models/User.js @@ -65,6 +65,7 @@ var userSchema = new mongoose.Schema({ default: '' } }, + portfolio: { website1Link: { type: String, diff --git a/seed_data/userMigration.js b/seed_data/userMigration.js new file mode 100644 index 0000000000..834007ff21 --- /dev/null +++ b/seed_data/userMigration.js @@ -0,0 +1,35 @@ +require('dotenv').load(); +var mongodb = require('mongodb'), + MongoClient = mongodb.MongoClient, + Server = require('mongodb').Server, + User = require('../models/User.js'), + newChallenges = require('./challengeMapping.json'), + secrets = require('../config/secrets'); + +var mongoClient = new MongoClient(new Server('localhost', 27017), {native_parser: true}); +var mongoose = require('mongoose'); +mongoose.connect(secrets.db); + +User.find(function(err, users) { + if (err) { console.log(err) } + users.forEach(function(user) { + console.log('in users'); + if (typeof user.challengesHash !== 'undefined') { + var oldChallenges = Object.keys(user.challengesHash).filter(function (challenge) { + return user.challengesHash[challenge]; + }).map(function (data) { + return ({ + challengeNum: data, + timeStamp: user.challengesHash[data] + }); + }); + oldChallenges.forEach(function (challenge) { + user.progressTimestamps.push(challenge.timeStamp); + }); + newChallenges = newChallenges.filter(function (elem) { + return elem.newId; + }); + console.log(newChallenges); + } + }); +});