configuration.js |
|
Generated by CoffeeScript 1.9.1 |
(function() {
module.exports = (function() {
var DBPREFIX, DEFAULTS, configuration, db, ld, storage;
ld = require('lodash');
storage = require('./storage.js');
db = storage.db;
DEFAULTS = {
passwordMin: 8,
passwordMax: 30,
sessionSecret: 'LvP@WHB#I5)u@u@nAX9RL*n7CEQPxs'
};
DBPREFIX = storage.DBPREFIX.CONF;
configuration = {
init: function(callback) {
var kv;
if (callback == null) {
callback = ld.noop;
}
if (!ld.isFunction(callback)) {
throw new TypeError('callback must be a function');
}
kv = ld.transform(DEFAULTS, function(memo, val, key) {
return memo[DBPREFIX + key] = val;
});
return storage.fn.setKeys(kv, callback);
},
get: function(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');
}
return db.get(DBPREFIX + key, function(err, res) {
if (err) {
return callback(err);
}
if (ld.isUndefined(res)) {
return callback(new Error('Key doesn\'t exist'));
}
return callback(null, res);
});
},
set: function(key, value, callback) {
if (!ld.isString(key)) {
throw new TypeError('key must be a string');
}
if (ld.isUndefined(value)) {
throw new TypeError('value is mandatory');
}
if (!ld.isFunction(callback)) {
throw new TypeError('callback must be a function');
}
return db.set(DBPREFIX + key, value, callback);
},
del: function(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');
}
return db.remove(DBPREFIX + key, callback);
},
all: function(callback) {
if (!ld.isFunction(callback)) {
throw new TypeError('callback must be a function');
}
return db.findKeys(DBPREFIX + "*", null, function(err, keys) {
if (err) {
return callback(err);
}
return storage.fn.getKeys(keys, function(err, results) {
if (results) {
results = ld.transform(results, function(memo, val, key) {
return memo[key.replace(DBPREFIX, '')] = val;
});
}
return callback(arguments[0], results);
});
});
}
};
return configuration;
})();
}).call(this);
|