Refactor editview/index

This commit is contained in:
simov
2014-09-05 11:31:39 +03:00
parent 42888d144a
commit 9fe270d1d4
+26 -29
View File
@@ -1,5 +1,6 @@
var dcopy = require('deep-copy');
var async = require('async'),
dcopy = require('deep-copy');
var upload = require('./upload'),
data = require('./data'),
params = require('./params');
@@ -14,67 +15,63 @@ function removeHidden (columns) {
return result;
}
function getData (args, cb) {
function getData (args, done) {
args.config.columns = removeHidden(args.config.columns);
data.otm.get(args, function (err) {
if (err) return cb(err);
if (err) return done(err);
data.stc.get(args);
data.tbl.get(args, function (err, rows) {
if (err) return cb(err);
if (err) return done(err);
data.mtm.get(args, rows, function (err) {
if (err) return cb(err);
if (err) return done(err);
upload.loopRecords(args, function (err) {
if (err) return cb(err);
cb(null, params.get(args, rows));
if (err) return done(err);
done(null, params.get(args, rows));
});
});
});
});
}
function getTables (args, cb) {
var tables = [],
keys = Object.keys(args.tables);
(function loop (index) {
if (index == keys.length) return cb(null, tables);
var name = keys[index];
function getTables (args, done) {
var tables = [];
async.eachSeries(Object.keys(args.tables), function (name, done) {
args.config = dcopy(args.settings[name]);
args.fk = args.tables[name];
getData(args, function (err, table) {
if (err) return cb(err);
if (err) return done(err);
tables.push(table);
loop(++index);
done();
});
}(0));
}, function (err) {
done(err, tables);
});
}
exports.getTypes = function (args, cb) {
var types = ['view', 'oneToOne', 'manyToOne'],
config = args.config,
result = {};
(function loop (i) {
if (i == types.length) return cb(null, result);
var type = types[i];
exports.getTypes = function (args, done) {
var result = {};
async.eachSeries(['view', 'oneToOne', 'manyToOne'], function (type, done) {
args.type = type;
args.tables = {};
(type == 'view')
? args.tables[args.name] = null
: args.tables = config.editview[type] || {};
: args.tables = args.config.editview[type] || {};
args.post = args.data ? args.data[type] : null;
args.files = args.upload ? args.upload[type] : null;
getTables(args, function (err, tables) {
if (err) return cb(err);
if (err) return done(err);
result[type] = {tables: tables};
loop(++i);
done();
});
}(0));
}, function (err) {
done(err, result);
});
}
exports._removeHidden = removeHidden;