diff --git a/migrations/api_v3/users.js b/migrations/api_v3/users.js index abf3e12e26..5962a4a494 100644 --- a/migrations/api_v3/users.js +++ b/migrations/api_v3/users.js @@ -19,6 +19,7 @@ var _ = require('lodash'); var uuid = require('uuid'); var consoleStamp = require('console-stamp'); var common = require('../../common'); +var moment = require('moment'); // Add timestamps to console messages consoleStamp(console); @@ -61,19 +62,13 @@ var newTasksIds = require('./newTasksIds.json'); var AFTER_USER_ID = nconf.get('AFTER_USER_ID'); var BEFORE_USER_ID = nconf.get('BEFORE_USER_ID'); -/* TODO compare old and new model -- _id 9 -- challenges -- groups -- invitations -- challenges' tasks -*/ - function processUsers (afterId) { var processedTasks = 0; var lastUser = null; var oldUsers; + var now = new Date(); + var query = {}; if (BEFORE_USER_ID) { @@ -131,6 +126,7 @@ function processUsers (afterId) { } var newUser = new NewUser(oldUser); + var isSubscribed = newUser.isSubscribed(); oldTasks.forEach(function (oldTask) { oldTask._id = uuid.v4(); // create a new unique uuid @@ -157,6 +153,13 @@ function processUsers (afterId) { } } + // Delete old completed todos + if (oldTask.type === 'todo' && oldTask.completed && (!oldTask.challenge.id || oldTask.challenge.broken)) { + if (moment(now).subtract(isSubscribed ? 90 : 30, 'days').toDate() > moment(oldTask.dateCompleted).toDate()) { + return; + } + } + oldTask.createdAt = oldTask.dateCreated; if (!oldTask.text) oldTask.text = 'task text'; // required