viewmodel
Advanced tools
Comparing version 0.5.2 to 0.5.3
@@ -240,4 +240,4 @@ var cradle = require('cradle') | ||
res = _.extend(res, self.fromObject(obj)); | ||
res._revision = res.revision; | ||
delete res.revision; | ||
// res._revision = res.revision; | ||
// delete res.revision; | ||
@@ -290,4 +290,4 @@ clb(null, res); | ||
var vm = vms[i].value; | ||
vm._revision = vm.revision; | ||
delete vm.revision; | ||
// vm._revision = vm.revision; | ||
// delete vm.revision; | ||
vm.id = vm._id; | ||
@@ -321,5 +321,6 @@ var obj = self.fromObject(vm); | ||
var self = this; | ||
switch(vm.actionOnCommit) { | ||
case 'delete': | ||
var self = this; | ||
this.db.get(vm.id, function(err, doc) { | ||
@@ -337,14 +338,26 @@ if (doc) { | ||
var obj = this.fromViewModel(vm); | ||
obj.revision = obj._revision; | ||
delete obj._revision; | ||
// obj.revision = obj._revision; | ||
// delete obj._revision; | ||
// delete obj._rev; | ||
obj.id = obj._id; | ||
obj.collectionName = this.collectionName; | ||
this.db.save(obj._id, obj, function(err) { | ||
if (err && err.error === 'conflict' && err.reason.indexOf('update conflict') >= 0) { | ||
function save() { | ||
self.db.save(obj._id, obj._rev, obj, function(err) { | ||
if (err && err.error === 'conflict' && err.reason.indexOf('update conflict') >= 0) { | ||
return callback(new ConcurrencyError()); | ||
} | ||
vm.actionOnCommit = 'update'; | ||
callback(err, vm); | ||
}); | ||
} | ||
if (!obj._rev) { | ||
this.db.get(obj.id, function(err, doc) { | ||
if (doc) { | ||
return callback(new ConcurrencyError()); | ||
} | ||
vm.actionOnCommit = 'update'; | ||
callback(err, vm); | ||
}); | ||
save(); | ||
}); | ||
} else { | ||
save(); | ||
} | ||
break; | ||
@@ -351,0 +364,0 @@ default: |
@@ -143,2 +143,5 @@ var _ = require('lodash') | ||
case 'create': | ||
if (col[vm.id]) { | ||
return callback(new ConcurrencyError()); | ||
} | ||
// Intended Fall-through | ||
@@ -145,0 +148,0 @@ case 'update': |
@@ -150,3 +150,6 @@ var mongo = require('mongodb') | ||
obj._hash = new ObjectID().toString(); | ||
this.collection.save(obj, { safe: true }, function(err) { | ||
this.collection.insert(obj, { safe: true }, function(err) { | ||
if (err && err.message && err.message.indexOf('duplicate key') >= 0) { | ||
return callback(new ConcurrencyError()); | ||
} | ||
vm.actionOnCommit = 'update'; | ||
@@ -153,0 +156,0 @@ callback(err, vm); |
@@ -123,3 +123,6 @@ var path = require('path') | ||
obj._hash = new tingodb.ObjectID().toString(); | ||
this.collection.save(obj, { safe: true }, function(err) { | ||
this.collection.insert(obj, { safe: true }, function(err) { | ||
if (err && err.message && err.message.indexOf('duplicate key') >= 0) { | ||
return callback(new ConcurrencyError()); | ||
} | ||
vm.actionOnCommit = 'update'; | ||
@@ -139,3 +142,2 @@ callback(err, vm); | ||
this.collection.update(query, obj, { safe: true, upsert: !currentHash }, function(err, modifiedCount) { | ||
console.log(arguments); | ||
if (modifiedCount === 0) { | ||
@@ -142,0 +144,0 @@ return callback(new ConcurrencyError()); |
{ | ||
"author": "adrai", | ||
"name": "viewmodel", | ||
"version": "0.5.2", | ||
"version": "0.5.3", | ||
"private": false, | ||
@@ -6,0 +6,0 @@ "main": "index.js", |
44205
1008