storage.js |
|
Generated by CoffeeScript 1.9.1 |
(function() {
module.exports = (function() {
var DBPG, e, ld, storage, ueberDB;
ld = require('lodash');
storage = {};
storage.DBPREFIX = {
GLOBAL: 'mypads:'
};
DBPG = storage.DBPREFIX.GLOBAL;
storage.DBPREFIX.CONF = DBPG + "conf:";
storage.DBPREFIX.USER = DBPG + "user:";
storage.DBPREFIX.GROUP = DBPG + "group:";
storage.DBPREFIX.PAD = DBPG + "pad:";
try {
storage.db = require('ep_etherpad-lite/node/db/DB').db;
} catch (_error) {
e = _error;
ueberDB = require('ueberDB');
storage.db = new ueberDB.database('dirty', {
filename: './test.db'
});
storage.db.init(function(err) {
if (err) {
return console.log(err);
}
});
}
storage.init = function(callback) {
var user;
user = require('./model/user.js');
return user.init(callback);
};
storage.fn = {};
storage.fn.getDelKeys = function(del, keys, callback) {
var action, done, getDel, results;
results = del ? true : {};
action = del ? 'remove' : 'get';
getDel = function(k) {
return storage.db[action](k, function(err, res) {
if (err) {
return callback(err);
}
if (!del) {
results[k] = res;
}
return done();
});
};
done = function() {
if (keys.length) {
return getDel(keys.pop());
} else {
return callback(null, results);
}
};
return done();
};
storage.fn.getKeys = ld.partial(storage.fn.getDelKeys, false);
storage.fn.delKeys = ld.partial(storage.fn.getDelKeys, true);
storage.fn.setKeys = function(kv, callback) {
var done, pairs, set;
pairs = ld.pairs(kv);
set = function(k, v) {
return storage.db.set(k, v, done);
};
done = function(err) {
var pair;
if (err) {
return callback(err);
}
if (pairs.length) {
pair = pairs.pop();
return set(pair[0], pair[1]);
} else {
return callback(null);
}
};
return done();
};
return storage;
})();
}).call(this);
|