ilink_updater
Version:
70 lines (65 loc) • 2.22 kB
JavaScript
update_param_maker = function (def, objs,db_name) {
var D = QUERY_DEFINITIONS[def];
function make_from_single_obj(obj){
function each_table(table) {
var updated_obj = {};
var params = _.pairs(table.params);
_.each(params, function (param) {
if (obj[param[0]]) {
updated_obj[param[1]] = obj[param[0]];
}
});
params=null;
var query = table.query.replace("%=update_id%", "(" + obj_id + ")");
query = query.replace("<%=db_name%>", db_name);
full_update_object[table.name] = {
update_id: obj_id,
name: table.name,
query: query,
inserted_obj: updated_obj
};
query=null;
}
var full_update_object = {};
_.each(D.tables,each_table);
objs_arr.push({object:full_update_object});
full_update_object=null;
}
if (D) {
var objs_arr = [];
var obj_id =0;
if (!_.isArray(objs)) {
obj_id = objs.id;
if (obj_id) {
make_from_single_obj(objs);
}
else {
var M={
name: 'no_update_id',
source: 'data_front/update/' + __line,
function: __function,
module: 'test'
};
pino.error(M);
rsmq.sendMessage({qname: "fatal", message: JSON.stringify(M)}, function (err, res) {});
}
}else{
obj_id = objs[0].id;
if (obj_id) {
_.each(objs, make_from_single_obj);
}
}
return objs_arr;
}//end if D
else {
var M={
name: 'query_template_missing',
source: 'resolve_query_builder/update/' + __line,
function: __function,
module: 'test', template: def
};
pino.error(M);
rsmq.sendMessage({qname: "fatal", message: JSON.stringify(M)}, function (err, res) {});
return 0;
}
};