db/SessionStore.js: do not migrate to Promises. Make optional all(), clear() and length()
1. This module was not migrated to Promises, because it is only used via express-session, which can't actually use promises anyway. 2. all(), clear() and length() depend on the presence of the `db.forEach()` function, which in ueberdb2 doesn't even exist. Fortunately those three methods are optional, so I made their existence conditional on the presence of `db.forEach`. 3. in SessionStore.clear(), replaced a call to db.db.remove() with db.remove()pull/3559/head
parent
630af9af7d
commit
583ea92aaf
|
@ -2,6 +2,9 @@
|
||||||
* Stores session data in the database
|
* Stores session data in the database
|
||||||
* Source; https://github.com/edy-b/SciFlowWriter/blob/develop/available_plugins/ep_sciflowwriter/db/DirtyStore.js
|
* Source; https://github.com/edy-b/SciFlowWriter/blob/develop/available_plugins/ep_sciflowwriter/db/DirtyStore.js
|
||||||
* This is not used for authors that are created via the API at current
|
* This is not used for authors that are created via the API at current
|
||||||
|
*
|
||||||
|
* RPB: this module was not migrated to Promises, because it is only used via
|
||||||
|
* express-session, which can't actually use promises anyway.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var Store = require('ep_etherpad-lite/node_modules/express-session').Store,
|
var Store = require('ep_etherpad-lite/node_modules/express-session').Store,
|
||||||
|
@ -50,6 +53,12 @@ SessionStore.prototype.destroy = function(sid, fn) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RPB: the following methods are optional requirements for a compatible session
|
||||||
|
* store for express-session, but in any case appear to depend on a
|
||||||
|
* non-existent feature of ueberdb2
|
||||||
|
*/
|
||||||
|
if (db.forEach) {
|
||||||
SessionStore.prototype.all = function(fn) {
|
SessionStore.prototype.all = function(fn) {
|
||||||
messageLogger.debug('ALL');
|
messageLogger.debug('ALL');
|
||||||
|
|
||||||
|
@ -68,7 +77,7 @@ SessionStore.prototype.clear = function(fn) {
|
||||||
|
|
||||||
db.forEach(function(key, value) {
|
db.forEach(function(key, value) {
|
||||||
if (key.substr(0,15) === "sessionstorage:") {
|
if (key.substr(0,15) === "sessionstorage:") {
|
||||||
db.db.remove("session:" + key);
|
db.remove("session:" + key);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (fn) fn();
|
if (fn) fn();
|
||||||
|
@ -85,4 +94,5 @@ SessionStore.prototype.length = function(fn) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
fn(null, i);
|
fn(null, i);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue