INNER CODE UNIT · JavaScript
rollbackRemoveOrUpdate
e-oj/Fawn · lib/roller.js:153
function rollbackRemoveOrUpdate(db, step, task) {
var collection = getCollectionForStep(db, step);
var chain = Promise.resolve();
step.dataStore.forEach(function(data) {
chain = chain.then(function() {
var condition = {_id: data._id};
return collection.findOne(condition).then(function (doc) {
if (doc && step.type === UPDATE) {
return collection.updateOne(condition, data);
}
else if (!doc && step.type === REMOVE) {
return collection.insertOne(data);
}
return Promise.resolve();
});