Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/openbiz/openbiz
Browse files Browse the repository at this point in the history
  • Loading branch information
jixian-pickatale committed Apr 14, 2014
2 parents 8cb4655 + 50e3421 commit ec79247
Showing 1 changed file with 62 additions and 55 deletions.
117 changes: 62 additions & 55 deletions lib/controllers/ModelSubdocController.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,29 @@ module.exports = function(app, name){
//default data get method
//trigger method for data collection get
//The fetched record is at req.record
beforeGetItem: function(req, res){},
beforeGetItem: function(req, res, next){next();},
afterGetItem: function(req, res){},

//trigger method for data collection fetch
//The fetched records is at req.recordCollection
beforeGetCollection: function(req, res){},
beforeGetCollection: function(req, res, next){next();},
afterGetCollection: function(req, res){},

//trigger method for data create
//The created record is at req.record
beforeCreate: function(req, res){},
beforeCreate: function(req, res, next){next();},
afterCreate: function(req, res){},

//trigger method for data update
//The old record is at req.record
//The new record is at req.recordNew
beforeUpdate: function(req, res){},
beforeUpdate: function(req, res, next){next();},
afterUpdate: function(req, res){},


//trigger method for data delete
//The old record is at req.record
beforeDelete: function(req, res){},
beforeDelete: function(req, res, next){next();},
afterDelete: function(req, res){},

ensureExists:function(req,res,next){
Expand Down Expand Up @@ -72,62 +72,66 @@ module.exports = function(app, name){
});
},
getItem:function(req,res){
getSelf().beforeGetItem();
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item){
res.json(200,item);
}else{
res.send(406);
}
getSelf().afterGetItem();
getSelf().beforeGetItem(req,res,function(){
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item){
res.json(200,item);
}else{
res.send(406);
}
getSelf().afterGetItem();
});
},
getCollection: function(req, res){
getSelf().beforeGetCollection(req, res);
var results = app.openbiz.services.ArrayPaginator(req.record.get(getSelf()._path),req.query);
res.json(200,results);
getSelf().afterGetCollection(req, res);
getSelf().beforeGetCollection(req, res,function(){
var results = app.openbiz.services.ArrayPaginator(req.record.get(getSelf()._path),req.query);
res.json(200,results);
getSelf().afterGetCollection(req, res);
});
},
delete:function(req,res){
getSelf().beforeDelete(req, res);
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item == null){
res.send(304);
}
else{
getSelf().processChangeLog(req,"DELETE",item);
req.record.get(getSelf()._path).remove(item);
req.record.save(function(err){
if(err){
res.json(500,{error:err});
}
else{
getSelf().afterDelete(req, res);
res.send(204);
}
});
}
getSelf().beforeDelete(req, res,function(){
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item == null){
res.send(304);
}
else{
getSelf().processChangeLog(req,"DELETE",item);
req.record.get(getSelf()._path).remove(item);
req.record.save(function(err){
if(err){
res.json(500,{error:err});
}
else{
getSelf().afterDelete(req, res);
res.send(204);
}
});
}
});
},
update:function(req,res){
getSelf().beforeUpdate(req, res);
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item == null){
res.send(304);
}else{
getSelf().processChangeLog(req,"UPDATE",item);
for(var i in req.body){
item[i] = req.body[i];
}
req.record.save(function(err){
if(err){
res.json(500,{error:err});
}
else{
req.recordNew = req.record;
getSelf().afterUpdate(req, res);
res.send(204);
getSelf().beforeUpdate(req, res,function(){
var item = req.record.get(getSelf()._path).id(req.params.subId);
if(item == null){
res.send(304);
}else{
getSelf().processChangeLog(req,"UPDATE",item);
for(var i in req.body){
item[i] = req.body[i];
}
});
}
req.record.save(function(err){
if(err){
res.json(500,{error:err});
}
else{
req.recordNew = req.record;
getSelf().afterUpdate(req, res);
res.send(204);
}
});
}
});
},
processChangeLog:function(req,action,item){
var updateLog = {
Expand All @@ -140,7 +144,10 @@ module.exports = function(app, name){
switch(action){
case "UPDATE": {
for(var i in req.body){
if(!_.isEqual(item[i], req.body[i])){
if(_.isDate(req.record[i])){
req.body[i] = new Date(req.body[i]);
}
if(!_.isEqual(item[i].toString(), req.body[i].toString())){
updateLog.original[i] = item[i];
updateLog.current[i] = req.body[i];
}
Expand Down

0 comments on commit ec79247

Please sign in to comment.