common.js |
|
Generated by CoffeeScript 1.9.1 |
(function() {
module.exports = (function() {
var common, ld, storage;
ld = require('lodash');
storage = require('../storage.js');
common = {};
common.addSetInit = function(params, callback, strFields) {
var isFS;
if (!ld.isObject(params)) {
throw new TypeError('parameters are mandatory for creation');
}
if (!ld.isFunction(callback)) {
throw new TypeError('callback must be a function');
}
if (!ld.isUndefined(params._id)) {
if (!ld.isString(params._id) || ld.isEmpty(params._id)) {
throw new TypeError('_id, when defined, must be a string');
}
}
if (strFields) {
isFS = function(s) {
return ld.isString(s) && !ld.isEmpty(s);
};
return ld.forEach(strFields, function(s) {
if (!isFS(params[s])) {
throw new TypeError(s + ' must be a string');
}
});
}
};
common.checkExistence = function(key, callback) {
return storage.db.get(key, function(err, res) {
if (err) {
return callback(err);
}
return callback(null, !!res);
});
};
common.checkMultiExist = function(keys, callback) {
var done;
done = function(err, res) {
if (keys.length) {
if (err) {
return callback(err);
}
if (!res) {
return callback(null, res);
}
return common.checkExistence(keys.pop(), done);
} else {
return callback(null, res);
}
};
return done(null, true);
};
common.getDel = function(del, PREFIX, key, callback) {
if (!ld.isString(key)) {
throw new TypeError('key must be a string');
}
if (!ld.isFunction(callback)) {
throw new TypeError('callback must be a function');
}
key = PREFIX + key;
return storage.db.get(key, function(err, obj) {
if (err) {
return callback(err);
}
if (ld.isUndefined(obj)) {
return callback(new Error('key is not found'));
}
if (!del) {
return callback(null, obj);
} else {
return storage.db.remove(key, function(err) {
if (err) {
return callback(err);
}
return callback(null, obj);
});
}
});
};
return common;
})();
}).call(this);
|