Skip to content

Instantly share code, notes, and snippets.

@artyomtrityak
Last active August 29, 2015 14:04
Show Gist options
  • Save artyomtrityak/6037578ba4c31f1d68d1 to your computer and use it in GitHub Desktop.
Save artyomtrityak/6037578ba4c31f1d68d1 to your computer and use it in GitHub Desktop.
var skills = data.skills,
activities = data.activities,
works = data.works,
schools = data.schools;
delete data.schools;
delete data.works;
delete data.activities;
delete data.skills;
function PartStoring(RESUME, PartObj, parts, name) {
var promises = [];
parts.forEach(function(part) {
delete part._id;
var promise = PartObj.create(part, function(err, result) {
if (err) {
throw err;
}
RESUME[name].push(result);
});
promises.push(promise);
});
return Q.all(promises);
}
Resume
.create(data, function(err, resume) {
RESUME = resume;
if (err) {
res.send(400, err);
}
})
.then(function() {
return PartStoring(RESUME, Skill, skills, 'skills');
})
.then(function() {
return PartStoring(RESUME, Activity, activities, 'activities');
})
.then(function() {
return PartStoring(RESUME, Work, works, 'works');
})
.then(function() {
return PartStoring(RESUME, School, schools, 'schools');
}).then(function() {
return RESUME.save();
}).then(function() {
RESUME.populate('skills schools activities works', function(err, result) {
res.send(200, result);
});
});
};
@mr-mig
Copy link

mr-mig commented Aug 5, 2014

 var promises = [];
    parts.forEach(function(part) {
      delete part._id;
      var promise = PartObj.create(part, function(err, result) {
        if (err) {
          throw err;
        }
        RESUME[name].push(result);
      });
      promises.push(promise);
    });
    return Q.all(promises);

can be changed to

var promises = parts.map(function(part) {
   delete part._id;
   var promise = PartObj.create(part, function(err, result) {
      if (err) {
        throw err;
      }
      RESUME[name].push(result);
    });
  });
return Q.all(promises);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment