Skip to content

Instantly share code, notes, and snippets.

@ebbersjathomes
Last active August 29, 2015 14:01
Show Gist options
  • Save ebbersjathomes/d149ca338e7edee111da to your computer and use it in GitHub Desktop.
Save ebbersjathomes/d149ca338e7edee111da to your computer and use it in GitHub Desktop.
/**
* Created by ebbersj on 5/13/14.
*/
var async = require("async"),
dataModel = require("../../dataModel/order/orderUser"),
orderUserDAO = require("../../dao/order/orderUser"),
validate = require("../../dataModel/validate");
var orderUserInstance = new orderUserDAO();
function createOrderUser(args, db, callback){
async.waterfall([
function(callback){
validateData(args, callback)
},
function(args, callback){
doSearch(args, db, callback)
},
function(args, results, callback){
handleSearchResults(args, results, db, callback)
}
], callback)
}
function validateData(args, callback){
validate(args, dataModel.insertOrderUser, callback);
};
function doSearch(args, db, callback){
orderUserInstance.search(args, db, function(err, results){
if(err){
callback(err);
} else {
callback(null, args, results);
}
});
};
function handleSearchResults(args, searchResults, db, callback){
if(searchResults.length){
return callback(searchResults[0].user_id);
}
createNewUser(args, db, callback);
};
function createNewUser(args, db, callback){
orderUserInstance._create(args, db, callback);
};
module.exports.createOrderUser = createOrderUser;
module.exports._validateData = validateData;
module.exports._doSearch = doSearch;
module.exports._handleSearchResults = handleSearchResults;
module.exports._createNewUser = createNewUser;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment