load user pins in the database worker

This commit is contained in:
ansuz
2020-03-25 11:39:14 -04:00
parent 50e8893b24
commit 4ba36a9173
4 changed files with 58 additions and 28 deletions

View File

@@ -6,19 +6,37 @@ const Store = require("../storage/file");
const Util = require("../common-util");
const nThen = require("nthen");
const Meta = require("../metadata");
const Pins = require("../pins");
const Env = {};
var ready = false;
var store;
const init = function (config, cb) {
var pinStore;
const init = function (config, _cb) {
const cb = Util.once(Util.mkAsync(_cb));
if (!config) {
return void cb('E_INVALID_CONFIG');
}
Store.create(config, function (err, _store) {
if (err) { return void cb(err); }
store = _store;
nThen(function (w) {
Store.create(config, w(function (err, _store) {
if (err) {
w.abort();
return void cb(err);
}
store = _store;
}));
Store.create({
filePath: config.pinPath,
}, w(function (err, _pinStore) {
if (err) {
w.abort();
return void cb(err);
}
pinStore = _pinStore;
}));
}).nThen(function () {
cb();
});
};
@@ -187,10 +205,24 @@ const getOlderHistory = function (data, cb) {
});
};
const getPinState = function (data, cb, errorHandler) {
const safeKey = data.key;
var ref = {};
var lineHandler = Pins.createLineHandler(ref, errorHandler);
// if channels aren't in memory. load them from disk
// TODO replace with readMessagesBin
pinStore.getMessages(safeKey, lineHandler, function () {
cb(void 0, ref.pins); // FIXME no error handling?
});
};
const COMMANDS = {
COMPUTE_INDEX: computeIndex,
COMPUTE_METADATA: computeMetadata,
GET_OLDER_HISTORY: getOlderHistory,
GET_PIN_STATE: getPinState,
};
process.on('message', function (data) {
@@ -201,13 +233,8 @@ process.on('message', function (data) {
}
const cb = function (err, value) {
if (err) {
return void process.send({
txid: data.txid,
error: err,
});
}
process.send({
error: err,
txid: data.txid,
value: value,
});